0

私はこれまでVb.Netで認証に取り組んだことがありません。したがって、以下の質問は、上級プログラマーにとってはばかげているように聞こえるかもしれません。お詫び申し上げます。

ログインしているユーザーのActiveDirectoryグループのリストを取得しようとしています。Roles.GetRolesForUser()がそれを達成するための最良の方法であると言われました。私は自分のweb.configに以下のコードを書きました。

<roleManager
  enabled="true"
  cacheRolesInCookie="true" >
</roleManager>

以下のコードをコードビハインドに追加しました。

Dim userRoles As String() = Roles.GetRolesForUser()

userRoles.lengthが0であることがわかります。ユーザーに複数のActiveDirectoryグループが関連付けられていることを確認しました。これは、web.configで設定した構成が間違っているか、このユーザーのすべてのActiveDirectoryグループを取得する方法ではないためです。任意の提案をいただければ幸いです。

4

1 に答える 1

0

Roles.GetRolesForUser()を理解するには愚かすぎるか、それを構成するのは本当に難しいです。:)

私はこの問題をIsInRole()メソッドを使用して解決しました。私は自分のアプリにアクセスする可能性のあるADGroupを知っており、それをweb.configの構成可能なアイテムとして作成しました。次に使用String.Split()し、手動でチェックしHttpContext.Current.User.IsInRole()て、ユーザーがアプリにアクセスできることを確認します。

于 2012-08-03T16:30:23.243 に答える