Вызов веб-службы из приложения Windows - PullRequest
0 голосов
/ 23 марта 2009

Я новичок в .NET и C #. Я создал веб-сервис и могу просматривать его с веб-страницы. Когда я пытаюсь вызвать его из приложения Windows, я получаю исключение 401: неавторизовано. Код компилируется нормально, но выдает исключение при запуске. Это код из приложения Windows. :

namespace BookStore
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Create a new instance of a service
            localhost.Service1 datasvc = new localhost.Service1();

            // Create instance of dataset, using WebService method GetTitleAuthors.
            DataSet myData = datasvc.GetTitleAuthors();

            // Set DataGrid's datasource to the myData DataSet.
            dataGridView1.DataSource = myData;

            //Expand all rows.            
            //dataGridView1.Expand(-1);

            //Expand DataTable
            //dataGridView1.NavigateTo(0, "Authors"); 
        }
    }
}

PS: я использую проверку подлинности Windows на веб-сайте, на котором размещен веб-сервис.

Ответы [ 2 ]

1 голос
/ 23 марта 2009

Я не знаю, какой тип наследует ваш объект Service1, поэтому я не могу сказать, какие свойства или методы вы связали с ним, но всякий раз, когда я знаю, вы можете звонить в ваш веб-сервис с помощью

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(URL);

А затем либо с помощью

req.UseDefaultCredentials = true;

или

req.Credentials = new NetworkCredential(userName, password);
1 голос
/ 23 марта 2009

Я считаю, что на сгенерированном прокси есть свойство с эффектом UseDefaultCredentials, попробуйте установить его в true.

datasvc.UseDefaultCredentials = true;

Хотя прошло уже много времени, и я думаю, что это заставит службу передавать учетные данные Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...