0

Silverlight 4 中客户端 http 堆栈的新功能之一是能够提供网络凭据。当我使用此功能时,Windows 显示“Windows 安全”消息框,提示用户输入登录名和密码(框中的文本为“xx 处的服务器 xx 需要用户名和密码。警告:此服务器正在请求您的用户名和密码以不安全的方式发送(没有安全连接的基本身份验证)。”)。我正在设置登录名和密码,如下所示,所以我不确定为什么会显示。我的代码是:

var request = WebRequestCreator.ClientHttp.Create(new Uri("http://myserver:8080/gui/?list=1"));
request.Credentials = new NetworkCredential("login", "password");
request.BeginGetResponse(new AsyncCallback(OnRequestComplete), request);

如果我在消息框中输入用户名和密码,则请求成功完成。出于多种原因,我宁愿提示用户输入登录名和密码,所以我想尽可能避免使用消息框。

我的设置是 Silverlight 4 final,VS 2010 final,Windows 7 x86。应用程序不在具有提升权限的浏览器中。

4

2 回答 2

1

如果您对 Web 服务器的调用是跨站点调用,则必须在 Web 服务器上指定客户端访问策略以启用授权标头。您应该将 XAPhttp://myserver:8080文件clientaccesspolicy.xml放在http://myserver:8080.

Tim Heuer 提供了有关Silverlight 4 如何启用 Authorization 标头修改的更多信息。

于 2010-05-21T23:59:28.860 回答
-1

关于“请求以不安全的方式发送您的用户名和密码”的警告可能意味着您没有通过 ssl (https) 发送数据,这将是 webbrowser 标准的安全连接。

您无法通过此操作,因为此提示是否显示取决于用户的 Internet 安全设置。从头到尾修复它的唯一方法是使用 ssl。

于 2010-04-25T23:31:44.737 回答