2013-03-02 55 views
1

假設用戶已經登錄到遠程系統,所以他有一個會話與他的用戶名和訪問他的私人數據相關聯。現在有一個Silverlight應用程序,它試圖通過HttpWebRequest(ClientHttp stack)與服務器進行通信。有沒有辦法將用戶會話傳遞給Silverlight應用程序?以某種方式與瀏覽器共享cookie可能?有什麼辦法讓ClientHttp堆棧使用瀏覽器cookies?

更新:

周圍有網頁和SO,以及代碼段,顯示如何從WebBrowser控制經由InternetGetCookieEx(例如Use a WebBrowser to login into a site that use HttpOnly cookie)轉移的HttpOnly Cookie來WebRequest。還有兩件事我還不明白 - 如果這可以在瀏覽器Silverlight應用程序中使用,並且Cookie可以類似地從Silverlight應用程序運行的瀏覽器轉移到Silverlight應用程序本身,

回答

1

您無法訪問表單身份驗證cookie或ASP.NET會話cookie,因爲這些cookie僅是會話cookie(用HttpOnly標誌發出),這意味着它們無法被客戶端腳本訪問。如果你想達到這個目的,你可以讓服務器明確地將cookie的值作爲生成標記中的參數傳遞給SL應用程序。

+0

網頁上還有一些代碼片斷,以及如何顯示如何通過InternetGetCookieEx將HttpOnly cookies從WebBrowser控件傳輸到WebRequest(例如http://www.codewrecks.com/blog/index.php/2011/04/12 /使用-A-網頁瀏覽器至與登錄到-A位點 - 即使用-的HttpOnly-餅乾/)。還有兩件事我還不明白 - 如果這可以在瀏覽器Silverlight應用程序中使用,並且Cookie可以類似地從Silverlight應用程序運行的瀏覽器轉移到Silverlight應用程序本身, – jayarjo 2013-03-02 08:11:16

+1

不,這不能在Silverlight應用程序中使用。 'InternetGetCookieEx'是一個Win32函數,爲了被調用,你需要被授權進行P/Invoke調用,這在Silverlight中是絕對不可能的,除非你已經將Silverlight應用程序作爲瀏覽器應用程序安裝在客戶端桌面。這可以用於富客戶端應用程序,例如WPF。 – 2013-03-02 13:11:10

相關問題