1

現在のユーザーが AD グループのメンバーであるかどうかを判断する必要がある WPF アプリがあります。

AD「ツリー」の次の場所にADグループ「TestGroup」を作成しました。

アプリ/共有/グループ/TestGroup

TestGroup のメンバーであるドメイン ログインとして実行されている VS 2010 でアプリをテストしています (そして、そのグループに自分自身を追加してから、ログオフ/ログオンしました)。

私のドメイン名は ABC です。

まず、次のようにして WindowsPrincipal を取得します。

if (!Thread.CurrentPrincipal.Identity.IsAuthenticated) Thread.CurrentPrincipal = new WindowsPrincipal(GetWindowsIdentity());

(ところで、これは常に GetWindowsIdentity() を呼び出します...それが問題になる可能性がありますか?)

それから私は:

_windowsPrincipal.IsInRole(@"ABC\TestGroup")

...常にfalseを返します。

IsInRole に正しい文字列を渡していますか? または、@"ABC\Apps\Shared\Groups\TestGroup" のように AD "ツリー" のフル パスを指定する必要がありますか (ほぼすべての順列を試しました)。または、この問題は VS でデバッグを実行することによって引き起こされる可能性がありますか?

または ????

ありがとう!

お父さん猫

4

1 に答える 1

1

私のコメントによると、問題はコードにないようです。代わりに、自分自身をグループに追加して以来、再起動していませんでした。必要なのはログオフ/ログオン (「サインオフ/サインオン」) だけだと思っていましたが、どうやら完全な再起動が必要なようです。たぶん、これは Win8 の新しい「機能」です。

于 2013-07-03T13:28:15.257 に答える