0

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

4

1 回答 1

0

要么我太愚蠢,无法理解 Roles.GetRolesForUser(),要么配置它真的很难。:)

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

于 2012-08-03T16:30:23.243 回答