[英]ASP.NET - Get Security Groups for User
我有一個運行於具有集成Windows安全性的Intranet上的網站。
<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?
除了使用Active Directory API,您還可以使用Roles類:
只需將其添加到您的web.config中:
<roleManager defaultProvider="WindowsProvider"
enabled="true"
cacheRolesInCookie="false">
<providers>
<add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
有關更多信息,請參見http://msdn.microsoft.com/zh-cn/library/system.web.security.windowstokenroleprovider.aspx 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.