2

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

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

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

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

----- Android webView报错结束--------

在 Android 端,我有以下内容:-------- 代码片段开始 -----

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); 设置内容视图(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 中设置的用户名/密码。

然而,当使用上面的“代码片段”时,我得到上面的“错误”,使用相同的用户名和密码。

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

4

1 回答 1

0

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

问题是Android不明白如何响应http 401.2。

您可以尝试基于 SSL 的基本身份验证,而不是集成 Windows 身份验证。

于 2011-04-27T19:10:28.650 回答