我以前从未在Vb.Net上做过授权。所以对于高级程序员来说,下面的问题可能听起来很愚蠢。请道歉。
我正在尝试获取已登录用户的Active Directory组列表。我被告知Roles.GetRolesForUser()是实现它的最佳方式。我在web.config中编写了以下代码。
<roleManager
enabled="true"
cacheRolesInCookie="true" >
</roleManager>
并在后面的代码中添加了以下代码。
Dim userRoles As String() = Roles.GetRolesForUser()
我看到userRoles.length为0.我验证用户有多个与之关联的活动目录组。这是因为我在web.config中设置的配置错误,或者这不是获取此用户的所有活动目录组的方法。任何建议都表示赞赏。
答案 0 :(得分:0)
我太愚蠢了解Roles.GetRolesForUser()或配置它真的很难。:)
我使用IsInRole()
方法解决了这个问题。我知道可能访问我的应用程序的ADGroups,并将其作为web.config中的可配置项。然后使用String.Split()
,然后使用HttpContext.Current.User.IsInRole()
手动检查以验证用户是否可以访问该应用。