語境:WCF FederatedAuthentication會話狀態混亂與ClaimsAuthorizationManager
上有棧和兵在這裏的幾個線程談論WCF與ASP.NET會話共享。沒有完全滿足我的問題。所以這裏去:
我有一個MVC網站,也有一些RouteTable服務在路徑「/服務」下。這一切都很好。我可以同時調用Controller操作和WCF服務方法。
我已啓用WIF和Federated Authentication與Windows Azure Access Control Service (ACS)。這也很好。我可以使用Facebook,Google等登錄,並在我的網站上明確建立會話。我可以調用MVC控制器操作和WCF方法。在當前用戶的IPrincipal的主體內部設置爲我當前的會話。
現在我要做個好孩子和使用自定義ClaimsAuthenticationManager and a custom ClaimsAuthorizationManager。一個奇怪的問題,現在出現:
的設置:
對於這個場景,我登錄我有一個會議。我可以在我的MVC控制器方法和我的WCF服務方法的方法體內證實這一點。這意味着我們可以將自定義ClaimsAuthenticationManager置於此之外,因爲當我已經有一個會話時它沒有被觸及。
這是自ClaimsAuthorizationManager導致我的頭痛。
當我做的MVC網站我驗證我的會話ClaimsAuthorizationManager.CheckAccess方法的內部,也在裏面我的MVC控制器動作身體的呼叫。到現在爲止還挺好。
問題:
當我做的WCF服務,我不跟我的會話認證的ClaimsAuthorizationManager.CheckAccess方法的內部調用,但我認證(突然),我打我的WCF服務方法中的斷點。
這只是沒有任何意義!看起來我的會話沒有在ClaimsAuthorization manager中膨脹,但是當我打開自己的WCF代碼時,會話就位了!
這怎麼可能?
乾杯,
馬格努斯
你能告訴在那裏您指定ClaimsAuthorizationManager類的配置? –
<! - 用於授予用戶對系統的訪問權限。修改用戶主體。 - > <! - 檢查訪問特定資源在系統上爲當前用戶。 - > –
noopman
我得出的結論是,這是一個配置問題。無論是我的WCF的認證是不正確的或有與ASP.NET應用程序和WCF服務沒有很好地一起玩一個probklem。 – noopman