【发布时间】:2011-11-17 12:56:22
【问题描述】:
如何使用 Windows 身份验证 (Active Directory) 在 WCF 中进行基于角色的身份验证?
我要求使用 Windows 身份验证 (Active Directory) 对请求进行身份验证。应定义 2 个角色。角色应映射到 Active Directory 中的用户组。
【问题讨论】:
如何使用 Windows 身份验证 (Active Directory) 在 WCF 中进行基于角色的身份验证?
我要求使用 Windows 身份验证 (Active Directory) 对请求进行身份验证。应定义 2 个角色。角色应映射到 Active Directory 中的用户组。
【问题讨论】:
使用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,则会引发安全异常。