【问题标题】:How to restrict users that consume WCF services如何限制使用 WCF 服务的用户
【发布时间】:2012-12-23 06:54:32
【问题描述】:

我有一个必须由某个 Active Directory 用户调用的 WCF 服务。

如何将该 WCF 服务的允许调用者限制为特定的 AD 组?

【问题讨论】:

    标签: wcf wcf-security


    【解决方案1】:

    由于您似乎在使用 Windows 身份验证,因此您将能够使用 Active Directory 组和这些组中用户的成员资格来限制服务方法的使用。

    这样,您就可以使用声明性语法将调用者限制在某些组中:

    [ServiceContract]
    interface IMyService
    {
       [OperationContract]
       [PrincipalPermission(SecurityAction.Demand, Role="YourCustomRole")]
       public string MethodLimitedToGroup(string someInput);
    }
    

    任何不属于您指定的组的成员并尝试调用此方法的人都将收到SecurityException - 但不会收到任何其他信息。

    这就是你要找的吗?

    【讨论】:

    • 是的,这就是我要查找的内容,但我不了解 ASP.Net 和 Active Directory 之间的关系?Asp.net 角色提供程序如何了解 Active Directory 用户组。
    • @Nim:对不起,我的错 - 我搞混了;在 WCF 服务中,您不需要其他任何东西。使用 Windows 凭据进行身份验证还应该提供此功能,以限制对某些组的方法的访问
    • 如果您的角色名称来自配置文件,那么您不能使用声明性语法,因为属性值只能是编译时间常数。在这种情况下,使用等效的命令式代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 1970-01-01
    相关资源
    最近更新 更多