1
我在兩種情況下使用silverlight 4應用程序。Silverlight安全問題:自簽名證書
方案1:Silverlight和RPC同一臺機器
中運行託管的文件系統上的網頁上,Silverlight的XAP也是文件系統:
C:\Silverlight\FSSilverlightApp\bin\Debug\SilverlightApplication2TestPage.html
連接到本地主機上正在訪問的網站:
https://localhost/rpc/someMethod
這是兩個獨立的URI所以瀏覽器檢測並立即請求(通過提琴手曲目):
https://lcoalhost/clientaccesspolicy.xml
成功地返回:
<?xml version="1.0" encoding="utf-8"?> <access-policy> <cross-domain-access> <policy> <allow-from http-request-headers="*"> <domain uri="http://*"/> <domain uri="https://*" /> </allow-from> <grant-to> <resource path="/" include-subpaths="true"/> </grant-to> </policy> </cross-domain-access> </access-policy>
該應用程序就能夠使RPC請求(通過小提琴手觀察)
一切都很好。如果我將遠程主機更改爲本地計算機名稱而不是本地主機,則工作正常。
方案2:Silverlight的本地機器上的RPC是遠程
- 在這種情況下,我使用的是不同的桌面訪問方案中使用的相同的RPC服務器1.
- Silverlight啓動,並且沒有請求:clientaccesspolicy.xml被製作
- Fiddler顯示大量的https隧道正在建立,但是我的機器和遠程服務器之間沒有通信。
以下安全異常返回:
System.Security.SecurityException ---> System.Security.SecurityException: Security error.
at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResultasyncResult)
at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClass5.<EndGetResponse>b__4(ObjectsendState)
at System.Net.Browser.AsyncHelper.<>c__DisplayClass2.<BeginOnUI>b__0(Object sendState)
--- End of inner exception stack trace ---
at [email protected]nvoke(Exception _arg1023)
at [email protected](AsyncParams`1 args)
我想這是一個IE瀏覽器配置問題。我嘗試在場景1中設置機器,作爲Internet Explorer中的受信任站點,似乎沒有工作......這必須是自簽名或不匹配的證書問題。有什麼想法嗎?
使用方法:IE 8和Windows 7
想法?