簡體   English   中英

ASP.NET-獲取用戶的安全組

[英]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類:

Roles.GetRolesForUser()

只需將其添加到您的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM