使用Xamarin ios从httpclient拒绝401访问

时间:2016-06-07 09:18:52

标签: ios xamarin

我使用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;
     }
}

0 个答案:

没有答案