2014-10-06 3 views
1

Я работаю над универсальным приложением Windows. В этом приложении я должен показать веб-сайт в веб-просмотре, для которого требуется аутентификация. Я обращаюсь к нему следующим образом:C# - HttpRequest, запрашивающий учетные данные второго входа

Uri url = new Uri("https://ssl.mywebsite.nl/"); 
    HttpWebRequest http = (HttpWebRequest)HttpWebRequest.Create(url); 
    http.Credentials = new NetworkCredential(userName, userPassword); 
    HttpWebResponse response = (HttpWebResponse)await http.GetResponseAsync(); 
    webView.Source = response.ResponseUri; 

И это прекрасно работает на Windows Phone. На окнах, однако, я получаю экран просит меня войти говоря:

«ssl.mywebsite.nl сервер запрашивает имя пользователя и пароль Сервер сообщает, что из Пожалуйста Войдите.. "

Это ошибка в Windows 8.1 или я пропустил что-то очень очевидное?

+0

Я знаю, что это не имеет никакого отношения к самому вопросу. Но благодаря вашему вопросу я смог предоставить учетные данные, необходимые для сайта. никогда не знал, что у него есть свойство Credentials. Теперь он работает. Большое спасибо. –

ответ

1

Так что я считаю, что причина, по которой это работала на Windows Phone, но не на рабочем столе Windows, заключалась в том, что она кэшировала учетные данные на Windows Phone, но не в Windows. Это привело к успешным попыткам проверки подлинности Windows Phone. И из-за того, как я пытался отобразить извлеченную информацию в WebView, это означало, что она должна была повторно аутентифицироваться, что привело к успешному отображению на Windows Phone, но не удалось отобразить (или, скорее, вопрос для аутентификации) в Windows.

Решение:

string encoded = Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1") 
    .GetBytes(userName + ":" + userPassword)); 
HttpRequestMessage mess = new HttpRequestMessage(HttpMethod.Get, 
    new Uri("https://ssl.mywebsite.nl/")); 
mess.Headers.Add("Authorization", "Basic " + encoded); 
webView.NavigateWithHttpRequestMessage(mess); 

Этот метод позволяет запрос всегда использовать данные полномочия, для этого не спрашивая пользователя, чтобы обеспечить их.

Смежные вопросы