Roles.GetRolesForUser()为空

时间:2012-06-25 18:06:58

标签: vb.net

我以前从未在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中设置的配置错误,或者这不是获取此用户的所有活动目录组的方法。任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:0)

我太愚蠢了解Roles.GetRolesForUser()或配置它真的很难。:)

我使用IsInRole()方法解决了这个问题。我知道可能访问我的应用程序的ADGroups,并将其作为web.config中的可配置项。然后使用String.Split(),然后使用HttpContext.Current.User.IsInRole()手动检查以验证用户是否可以访问该应用。