2013-03-19 16 views
2

我正在尋找一個鉤子,事件,或者,我可以使用OperationContext.Current.ClaimsPrincipal已設置後運行了一下自定義代碼一些其他的擴展點,但實際的方法被調用之前。是否有WCF出現這種情況後,* * OperationContext.Current.ClaimsPrincipal設置了事件或掛鉤?

  • IDispatchMessageInspectorAfterReceiveRequest法)
  • IParameterInspectorBeforeCall法)
  • IAuthorizationPolicyEvaluate法)
  • ICallContextInitializerBeforeInvoke法)

在:我使用下面的嘗試OperationContext.Current.ClaimsPrincipal這些點都沒有值。

如何運行一段代碼(在我的情況下,授權和審計代碼的基礎上,進入索賠)傳入的索賠已經確定之後,但該方法本身運行過嗎?

回答

1

對於在RP(應用程序)的授權碼,實現ClaimsAuthorizationManager做你的授權檢查。具體來說,覆蓋CheckAccess方法並根據您的授權檢查返回true/false。該ClaimsPrincipal將從傳遞到您的checkAccess方法的上下文訪問。

更多的背景和樣品在這裏:

http://msdn.microsoft.com/en-us/library/system.security.claims.claimsauthorizationmanager.aspx

+0

完美,那奇妙的作品(甚至似乎是這種事情所需的位置)! – Mark 2013-03-20 14:57:06