bec*_*hbd 3 .net asp.net .net-4.0 active-directory
我正在尝试使用Windows身份验证和活动目录组来管理应用程序中的安全性.我遇到的问题是,在我试图验证的页面后面的代码中,用户点击ASP.NET网站是特定AD组的成员,然后根据它显示/隐藏一些项目.我遇到的问题是,我似乎无法获得用户所属的所有组以进行测试.我已经包含了下面的代码,用于列出用户所属的所有组.此代码确实返回了许多组,但它没有返回所有组.我已在AD控制器中验证所有组似乎设置相同.我有什么想法我做错了吗?
Private Function GetCurrentGroups() As ArrayList
Dim groups As New ArrayList()
For Each group As System.Security.Principal.IdentityReference In System.Web.HttpContext.Current.Request.LogonUserIdentity.Groups
groups.Add(group.Translate(GetType(System.Security.Principal.NTAccount)).ToString())
Next
groups.Sort()
Return groups
End Function
Run Code Online (Sandbox Code Playgroud)
你没有做错任何事 - 你很可能只看到你的用户的直接组成员资格.
任何嵌套的成员资格 - User其成员GroupA又是其成员GroupB- 通常不会显示 - 所以在这种情况下,你会看到GroupA但不是GroupB.
如果您确实需要此信息,则必须直接询问Active Directory(使用类似System.DirectoryServices.AccountManagement名称空间的内容 - 关于使用它的MSDN文章).
所述S.DS.AM除其他事项外的命名空间包含一个类UserPrincipal表示在AD用户,并且这类有一个叫做方法.GetAuthorizationGroups(),其将返回所有组的用户是会员-包括嵌套组.
| 归档时间: |
|
| 查看次数: |
1780 次 |
| 最近记录: |