我正在尝试查看一个来自Android应用程序的网页,该网页需要身份验证并收到以下消息:

----- Android webView错误启动--------

“您无权使用您提供的凭据查看此目录或页面,因为您的Web浏览器正在发送WWW.Authenticate标头字段,Web服务器未配置为接受此字段”

HTTP错误401.2 =未授权:由于服务器配置,访问被拒绝。 Internet信息服务(IIS)。

----- Android webView错误结束--------

在Android方面,我有以下几点:
-------代码片段开始-----

公共无效onCreate(捆绑保存的InstanceState){
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);

   // web view
   webView = (WebView) findViewById(R.id.web_view);
   webView.getSettings().setJavaScriptEnabled(true);
   webView.setHttpAuthUsernamePassword("123.example.com", "", "username", "password");
   // webView.setHttpAuthUsernamePassword("123.example.com/admin.default.aspx", "", "username", "password");

   webView.loadUrl("http://123.example.com/admin/default.aspx");


}

-------代码段结束--------

在IIS 6.0方面

在“身份验证方法”对话框中
取消选中:“启用匿名访问”
检查:“集成的Windows身份验证”

当使用“常规浏览器”时,如果导航到“ http://123.example.com/admin/default.aspx”,则会出现一个对话框,询问用户名和密码。
输入后,我便可以访问该站点。这是我在Windows中设置的用户名/密码。

但是,当使用上述“代码片段”时,使用相同的用户名和密码会出现上述“错误”。

您能否提供建议或以其他方式引导我朝着“正确”的方向发展。

最佳答案

Http 401.2是NTLM质询响应握手的一部分。

问题在于,Android无法理解如何响应http 401.2。

您可以尝试通过SSL而不是集成Windows身份验证进行基本身份验证。

10-07 20:00
查看更多