2011-08-16 43 views
2

語境:WCF FederatedAuthentication會話狀態混亂與ClaimsAuthorizationManager

上有棧和兵在這裏的幾個線程談論WCFASP.NET會話共享。沒有完全滿足我的問題。所以這裏去:

我有一個MVC網站,也有一些RouteTable服務在路徑「/服務」下。這一切都很好。我可以同時調用Controller操作和WCF服務方法。

我已啓用WIFFederated AuthenticationWindows 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代碼時,會話就位了!

這怎麼可能?

乾杯,

馬格努斯

+0

你能告訴在那裏您指定ClaimsAuthorizationManager類的配置? –

+0

<! - 用於授予用戶對系統的訪問權限。修改用戶主體。 - > <! - 檢查訪問特定資源在系統上爲當前用戶。 - > noopman

+0

我得出的結論是,這是一個配置問題。無論是我的WCF的認證是不正確的或有與ASP.NET應用程序和WCF服務沒有很好地一起玩一個probklem。 – noopman

回答

0

這可能是#1的問題,但是當我複製你的配置到記事本+ +,我看見的AuthenticationManager類型值一些垃圾字符:enter image description here

隨着問題的其餘部分則,你有,你在這裏展示的元素之前<clear />元素?