我使用https调用aspx页面,返回一些Request.ServerVariables,例如AUTH_USER和AUTH_TYPE。当我通过浏览器(IE,FireFox,Crome或Safari)调用此页面时,一切正常,AUTH_USER正确返回调用者Userid和AUTH_TYPE正确返回Negoiate,因为iis Web服务器设置为使用Kerberos进行Windows身份验证。此外,当我使用C# Windows窗体应用程序中的以下代码调用URL时,它也可以正常工作,但是当我将完全相同的代码放入Xamarin ios应用程序并在模拟器或ios设备上运行时,我得到了一个“由于凭证无效,401访问被拒绝”,就好像没有传递凭据一样。
我在Visual Studio 2015中使用Xamarin 4.0.4.4,并注意到其他附录建议降级Xamarin的级别,但是如何解决此问题的任何帮助将非常感激
static async Task<string> DownloadPage1()
{
string result = "";
try
{
string userid = "xxx";
string password = "xxx";
string domain = "xxx";
string url = @"https://xxx/Default.aspx";
HttpClientHandler Handler = new HttpClientHandler();
Handler.Credentials = new System.Net.NetworkCredential(userid, password, domain);
using (var client = new HttpClient(Handler))
{
using (var r = await client.GetAsync(new Uri(url)))
{
result = await r.Content.ReadAsStringAsync();
return result;
}
}
}
catch (System.Exception Ex)
{
throw Ex;
}
}