2011-06-30 75 views
1

我想爲我的WCF4 REST API實現API密鑰身份驗證解決方案。WCF4 REST APIkey問題 - 將信息從ServiceAuthorizationManager傳遞到服務

我知道我需要創建一個類並從ServiceAuthorizationManager派生它並覆蓋CheckAccessCore方法。我所理解的。

但是我想從CheckAccessCore執行的操作將CheckAccessCore的內部信息傳遞給我的Service實現類。像ApiKeyID,權限,標誌和其他細節的信息,我做了ApiKey身份驗證時查找。

這樣我的服務在內部可以在調用域邏輯時使用內部的ApiKeyID。

我已經看到了這樣做的許多不同的方式,比如

operationContext.ServiceSecurityContext.AuthorizationContext.Properties["Principal"] = p; 

System.Threading.Thread.CurrentPrincipal = principal; 
HttpContext.Current.User = principal; 

等方式....

+0

我有同樣的問題,除了我使用WCF數據服務。你有沒有找到一個好的答案呢? –

回答

0

的另一種方式,你可以沿着物體傳遞是將該對象添加到RequestMessage對象的Properties集合中。

IssuedToken Token = new IssuedToken() 
operationContext.RequestContext.RequestMessage.Properties.Add("NameOfObj",Token); 
+0

好的,這就是你如何設置它,但你如何檢索它?據我所知,WebOperationContext.Current.IncomingRequest沒有屬性。只有標題。 –

+0

我不認爲operationContext可用於REST。只是WebOperationContext,它只有HTTP頭。 –

+0

我構建REST WCF並使用上述技術將ServiceAuthorizationManager中的數據傳遞給我的其他代碼。 – Victor

相關問題