2010-10-15 72 views
2

有以下設計:後端實現爲WCF,公共前臺站點和兩個Intranet站點(全部三個與後端交談)。我相信在網站上的身份驗證是不夠的(即將每個請求中的ClientID作爲參數傳遞給WCF),並且我想通過身份驗證保護我的後端(WCF)以執行雙重檢查,並且對具有角色的方法擁有PrincipalPermission指定。WCF身份驗證與多個提供商

我確定來自兩個提供商的身份名稱不會交叉(公共登錄只是數字,Intranet會像'DOMAIN \ Login')。前臺使用表單身份驗證,其提供程序返回GenericPrincipal。 Intranet站點使用Windows身份驗證,並且我有WindowsPrincipal附加到Page.User

是否可以配置WCF使用兩個成員提供程序(前臺使用的自定義提供程序和Windows)開箱即用,無需編寫其他自定義代碼?我的WCF託管是否重要?目前它是Windows服務。我需要切換到IIS 7嗎?

回答

1

我不這麼認爲 - 你只能有一個會員供應商。但是您可以擁有一個自定義提供者,可以根據提供的憑據對兩個不同的商店進行身份驗證。例如,它可以檢查用戶名是否像域\登錄然後嘗試對活動目錄,否則嘗試對網站提供商。

另一個想法是有兩個不同的服務終點。每個都將配置特定的提供者。服務實施將保持不變 - 在裏面,你必須去基於索賠的授權。查看這篇文章的更多信息:http://www.theserverside.net/tt/articles/showarticle.tss?id=ClaimsBasedSecurityModel

+0

優秀的文章,迄今爲止我讀過的最好的!我不知道每個端點都可以配置爲使用特定的提供程序,因此您的想法對我來說看起來很不錯。謝謝! – UserControl 2010-10-15 11:28:30

+1

@UserControl,也有part2的文章,剛剛意識到part1沒有鏈接。這是它:http://www.theserverside.net/tt/articles/showarticle.tss?id=ClaimsBasedSecurityModel2 – VinayC 2010-10-15 13:40:38

+0

非常感謝,書籤! – UserControl 2010-10-15 14:22:50

相關問題