代码之家  ›  专栏  ›  技术社区  ›  James Cadd

为什么Silverlight4 ClientHTTP WebRequest提示用户输入登录名和密码?

  •  0
  • James Cadd  · 技术社区  · 16 年前

    Silverlight4中客户端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。应用程序不在具有提升权限的浏览器中。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Martin Liversage    16 年前

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

    TimHeuer有更多关于如何 Silverlight 4 enables Authorization header modification .

        2
  •  -1
  •   Jonas B    16 年前

    有关“请求以不安全的方式发送用户名和密码”的警告可能意味着您没有通过安全连接WebBrowser标准的SSL(HTTPS)发送数据。

    您无法通过此操作,因为根据用户的Internet安全设置显示或不显示此提示。唯一可以从您的端修复它的方法是使用SSL。