【问题标题】:How to do Role based authentication in WCF using Windows authentication (Active Directory)?如何使用 Windows 身份验证(Active Directory)在 WCF 中进行基于角色的身份验证?
【发布时间】:2011-11-17 12:56:22
【问题描述】:

如何使用 Windows 身份验证 (Active Directory) 在 WCF 中进行基于角色的身份验证?

我要求使用 Windows 身份验证 (Active Directory) 对请求进行身份验证。应定义 2 个角色。角色应映射到 Active Directory 中的用户组。

【问题讨论】:

    标签: c# asp.net .net wcf


    【解决方案1】:

    使用PrincipalPermissionAttribute:

    [PrincipalPermission(SecurityAction.Demand, Role = "MySpecialGroup")]
    void SomeMethod()
    {
       // Some Code
    }
    

    角色名称为 AD 组名称。

    如果您需要更多控制权,可以使用PrincipalPermission:

    void SomeMethod()
    {
      if(!this.IsOwnedByCurrentUser())
      {
        PrincipalPermission pp = new PrincipalPermission(null, "SomeSpecialGroup");
        pp.Demand();
      }
    }
    

    【讨论】:

    • 只是在方法中添加属性就足够了还是我需要做任何条件检查?
    • 添加PrincipalPermissionAttribute 就足够了。如果不是 MySpecialGroup 成员的任何人调用 SomeMethod,则会引发安全异常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 2019-10-04
    • 2015-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多