繁体   English   中英

C#-HttpRequest要求第二个登录凭据

[英]C# - HttpRequest asking for second login credentials

我正在使用Windows Universal应用程序。 在这个应用程序中,我必须在Web视图中显示一个需要身份验证才能访问的网站。 我通过以下方式访问它:

    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上运行正常。 但是,在Windows上,出现一个屏幕要求我登录:

“服务器ssl.mywebsite.nl正在询问您的用户名和密码。服务器报告它来自“请登录”。

这是Windows 8.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);

此方法允许请求始终使用给定的凭据,因此不要求用户提供它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM