2013-07-26 45 views
2

我不知道這是多麼簡單,但我想實現一個WCF Restful服務,但每當一個方法被擊中我想要它「攔截」,這個攔截將檢查是否頭信息存在識別用戶。WCF期望頭每個請求

目前我正在研究實現這一目標的最佳方法,並且遇到了許多機制。

發帖之前的搜索結果與「WCF REST入門套件」但我的搜索表明這已被放棄!

此外,顯然有一種叫做「RequestInterceptor」的東西,但是在這方面也沒有發現很多東西。我所遇到的「ServiceAuthorizationManager」我現在遇到了麻煩幾天(在這個意義上,它從來沒有得到,即使我把它的配置稱呼)

<serviceAuthorization serviceAuthorizationManagerType="SomeNamespace.MyAuthorizationManager,SomeNamespace" /> 

我有我的服務業務我有這種驗證工作的一種方式是通過繼承。這不是一個好方法,但希望有人提出更好的方法。

基於.NET的版本沒有限制,因爲這是一個個人的鍛鍊,我的:)

+0

需要明確的是:是這樣做的目的攔截以驗證呼叫者(通過檢查您的標頭),然後根據經過身份驗證的用戶身份授予或拒絕訪問權限? –

+0

絕對正確。我想在初始登錄時執行一些檢查我正在考慮發送一個帶有校驗位的回覆(沿着這些行),並且每個方法都會在標題中期待這一點,以評估它是否被篡改。早期階段,但我正在努力實現。 –

+0

我認爲WCF的正確方法是使用ServiceAuthenticationManager和ServiceAuthorizationManager的組合,如此答案中所示http://stackoverflow.com/questions/3715778/custom-wcf-authentication-with-system-servicemodel-serviceauthenticationmanager/3839743# 3839743 –

回答

0

如果你想檢查傳入的請求消息的工作,檢查Message Inspectors

+0

我嘗試過,但我想象每當我提出請求時,我的自定義IDispatchMessageInspector應該右擊? –

+0

如果您要撥打的服務正在使用適當的行爲,可以 – Dominik

+0

也許我的配置不正確,但我嘗試了您所說的話並且它不適合我。試了這個http://stackoverflow.com/a/7506438/1134076。 –