2010-10-15 44 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

相关问题