2011-08-18 66 views
0

我的服務器端包含WCF4 REST服務,我要爲我的未來SL4應用程序中添加RIA服務。目前我正在做這樣的基本認證:爲我的WCF服務定製「基本」身份驗證。 REST和RIA。可能?

var auth = HttpContext.Current.Request.Headers.GetValues("Authorization"); 

等等..你明白了..我每次請求都會調用它。如果標題不存在或者我無法驗證UN /密碼 - 我這樣做:

outgoingResponse.Headers.Add("WWW-Authenticate: Basic realm=\"Secure Area\""); 

這通過這麼遠我,但我重構我的服務器端。實施鏈接服務的IoC。創建自定義的ServiceHost,ServiceHostFactory,InstanceProvider和一切都很好。

現在我需要弄清楚如何正確處理身份驗證和授權使用WCF,所以我不必手工檢查頭。我確實有我的自定義MembershipProvider,所以必須有一些獲得UN/PW處理的方法。

任何指針?我查看了http://www.codeproject.com/KB/WCF/BasicAuthWCFRest.aspx,但它使用了RequestInterceptor,它在WCF4中不可用。我發現ServiceAuthenticationManager和ServiceAuthorizationManager但提供了有關如何編寫和電線那些..沒有樣品

任何人都可以建議我應該走哪條路?

回答

0

嘗試使用此custom HTTP module。它將向IIS添加新的身份驗證模式,並允許您使用自定義憑據驗證。

0

我有所有類型的使用WCF內置註釋在最近的SOAP/C#項目的問題。我知道這不是最好的解決方案,但爲了我的目的,我在IIS7中爲我的應用程序啓用了基本身份驗證,禁用了匿名身份驗證,併爲調用Web服務端點的外部客戶端創建了Active Directory用戶。然後,我在IIS7中更改了應用程序的權限(它使用文件系統權限)以允許包含這些用戶的組。

這使身份驗證的應用程序之外,你想要的東西可能不是,但確實能讓你輕鬆通過IIS7控制檯和部署工具,可以複製這些權限添加用戶。優點是您不必重新部署應用程序以更改權限。缺點是你不能對每個函數進行細粒度的權限控制。