【问题标题】:WCF override Role based security checkWCF 覆盖基于角色的安全检查
【发布时间】:2013-01-20 12:23:12
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# asp.net wcf security


    【解决方案1】:

    我认为您不能禁用检查,但您只需将Thread.CurrentPrincipal 设置为具有所需角色的IPrincipal

    执行此操作的一种方法是在您的测试机器上的应用程序配置文件中配置RoleProvider 并使用适当的角色。

    【讨论】:

    • 谢谢,但我不知道你所说的“配置角色提供者”是什么意思,你有什么例子吗?
    【解决方案2】:

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

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

    更多信息:

    msdn: IAuthorizationPolicy Interface

    Custom Principals and WCF

    【讨论】:

      猜你喜欢
      • 2010-12-01
      • 2013-03-21
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 2019-06-15
      • 2012-03-18
      • 2019-03-13
      相关资源
      最近更新 更多