我有一个在内联网上运行的网站,集成了Windows安全保护。
<authentication mode="Windows" />
<identity impersonate="true" />
<authorization>
<allow roles="MyDomain\Group1,MyDomain\Group2"/>
</authorization>
如何确定当前用户是否属于MyDomain \ Group1或MyDomain \ Group2。我在下面尝试了这个,但它会抛出一个错误:
PrincipalContext principalContext = new PrincipalContext(ContextType.Domain);
GroupPrincipal group = GroupPrincipal.FindByIdentity(principalContext, "MyDomain\Group1");
PrincipalSearchResult<Principal> user = UserPrincipal.Current.GetGroups();
foreach (Principal principal in group.Members)
{
if (UserPrincipal.Current.Name == principal.Name)
{
// Enable Functionality
break;
}
}
如何确定当前用户是属于Mydomain \ Group1还是Mydomain \ Group2?
答案 0 :(得分:0)
您可以简单地使用Roles类:
,而不是使用Active Directory API只需将此添加到您的web.config:
<roleManager defaultProvider="WindowsProvider"
enabled="true"
cacheRolesInCookie="false">
<providers>
<add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.web.security.windowstokenroleprovider.aspx。