代码之家  ›  专栏  ›  技术社区  ›  UserControl

具有多个提供程序的WCF身份验证

  •  2
  • UserControl  · 技术社区  · 14 年前

    有以下设计:后端实现为WCF,公共前端站点和两个内网站点(三个都与后端对话)。我认为站点上的身份验证是不够的(即在每个请求中将clientid作为参数传递给wcf),我希望通过身份验证来保护后端(wcf),以执行双重检查并 PrincipalPermission 在指定了角色的方法上。

    我确信这两个提供者的身份名称不会交叉(公共登录仅为数字,内部网类似于“域\登录”)。前端站点使用Forms AUTH及其提供程序返回 GenericPrincipal . Intranet站点使用Windows身份验证,我 WindowsPrincipal 附于 Page.User .

    是否可以在不编写另一个自定义代码的情况下,将WCF配置为使用两个现成的成员资格提供程序(前端站点使用的自定义成员资格提供程序和窗口)?我的WCF如何托管很重要吗?目前是Windows服务。我需要切换到IIS 7吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   VinayC    14 年前

    我不这么认为-你只能有一个会员服务提供商。但是您可以有一个自定义的提供者,它可以根据提供的凭证对两个不同的存储进行身份验证。例如,它可以检查用户名是否类似于域\登录,然后尝试使用Active Directory,否则尝试使用网站提供商。

    另一个想法是为服务提供两个不同的端点。每个都将配置特定的提供程序。服务实现将保持不变-在内部,您必须进行基于声明的授权。查看本文了解更多信息: http://www.theserverside.net/tt/articles/showarticle.tss?id=ClaimsBasedSecurityModel