我正在尝试查看一个来自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身份验证进行基本身份验证。