私は、私が働いているところが開発努力に呪われていると真剣に考え始めており、私は非常に奇妙な問題にぶち当たっています。Domain AdminsグループのIsUserInRoleの問題(設定上の問題ではない)
Roles.IsUserInRole(@"Domain\Domain Admins")
を使用して、ユーザーがドメイン管理者であるかどうかを確認しています。
私は何年もそれをしてきましたが、なんらかの理由で、そのグループで私を認識しません。私は最初にスペースと何か関係があったと思ったが、Roles.IsUserInRole(@"Domain\Domain Users")
はうまく動作する。どちらのグループも同じAD OUに存在します。
"Domain Admins"グループには何か特別なことがありますか?
EDIT:
List<GroupPrincipal> result = new List<GroupPrincipal>();
PrincipalContext yourDomain = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.FindByIdentity(yourDomain, User.Identity.Name);
if (user != null)
{
PrincipalSearchResult<Principal> groups = user.GetAuthorizationGroups();
foreach (Principal p in groups)
{
if (p is GroupPrincipal)
{
result.Add((GroupPrincipal)p);
}
}
}
var myRoles = Roles.GetRolesForUser(User.Identity.Name);
I、グループメンバーシップを確認するために上記のコードを使用します。 Domain Admins
は変数に記載されていますが、myRoles
には表示されません。
は実行しているすべてのグループを印刷して、それが助けかどうかを確認するためのスクリプトを書きます。 – hoodaticus
Domain Adminsグループで私が見ていたかどうかを判断するために使用したコードを示す編集を追加しました。編集中に私のコメントを参照してください –
[User.IsInRole falseを返す可能性のある重複](http://stackoverflow.com/questions/2451068/user-isinrole-returning-false) – hoodaticus