WCF覆盖基于角色的安全检查

本文关键字:角色 安全检查 覆盖 于角色 WCF | 更新日期: 2023-09-27 17:57:38

我有一个在VS2010中运行的ASP.NET应用程序。要从客户端访问wcf服务,需要具有适当的角色。我需要在这些角色不可用的机器。

是否可以在不修改源代码的情况下,在web.config中或以任何其他方式禁用所有服务的PrincipalPermission检查?或者有没有一种方法可以在某个地方提供"AppRole"角色作为配置参数?

[PrincipalPermission(SecurityAction.Demand, Role = "AppRole")]
public string GetFoo()
{
    // return ..
}

WCF覆盖基于角色的安全检查

我不认为您可以禁用检查,但您所需要做的就是将Thread.CurrentPrincipal设置为具有所需角色的IPrincipal

一种方法是在测试机器上的应用程序配置文件中使用适当的角色配置RoleProvider

您可以在运行时安装具有所需角色的通用主体。角色可以来自配置文件。

使用IAuthorizationPolicy,您可以安装通用主体。请参阅此SO:如何在WCF中声明性地实现自定义IAuthorizationPolicy?

更多信息:

msdn:I授权策略接口

自定义主体和WCF