2010-04-25 84 views
0

Silverlight 4中客戶機http堆棧的新功能之一是提供網絡憑據的功能。當我使用此功能時,Windows會顯示一個提示用戶輸入登錄名和密碼的「Windows安全性」消息框(文本框中的內容是「服務器xx在xx上需要用戶名和密碼警告:此服務器正在請求您的用戶名並以不安全的方式發送密碼(沒有安全連接的基本認證)。「)。我設置的登錄名和密碼如下所示,所以我不確定爲什麼會顯示。我的代碼是:爲什麼Silverlight 4 ClientHttp WebRequest提示用戶輸入登錄名和密碼?

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。該應用程序在具有提升權限的瀏覽器之外。

回答

1

如果您打電話給Web服務器是跨站點調用,則必須在Web服務器上指定客戶端訪問策略以啓用授權標頭。您應該將XAP文件放在http://myserver:8080上或將clientaccesspolicy.xml文件添加到http://myserver:8080的網站上。

蒂姆豪雅有更多關於如何Silverlight 4 enables Authorization header modification的信息。

-1

有關'請求以不安全的方式發送您的用戶名和密碼'的警告可能意味着您未通過ssl(https)發送數據,這將通過Web瀏覽器標準(一種安全連接)發送。

由於此提示顯示或未顯示,取決於用戶的Internet安全設置,您無法超越此目的。你可以從你的最後解決它的唯一方法是使用ssl。

相關問題