0

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

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

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

2 回答 2

0

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

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

于 2013-02-05T16:47:05.120 回答
0

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

使用 IAuthorizationPolicy 您可以安装通用主体。看到这个SO:How to declaratively implement custom IAuthorizationPolicy in WCF?

更多信息:

msdn:IAuthorizationPolicy 接口

自定义主体和 WCF

于 2013-02-05T16:48:03.793 回答