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

时间:2013-02-05 14:28:07

标签: c# asp.net wcf security

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

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

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

2 个答案:

答案 0 :(得分:0)

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

执行此操作的一种方法是在具有相应角色的测试计算机上的应用程序配置文件中配置RoleProvider

答案 1 :(得分:0)

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

使用IAuthorizationPolicy,您可以安装通用主体。见SO: How to declaratively implement custom IAuthorizationPolicy in WCF?

更多信息:

msdn: IAuthorizationPolicy Interface

Custom Principals and WCF