1

我有一个 WPF 应用程序需要确定当前用户是否是 AD 组的成员。

我在 AD“树”的以下位置创建了 AD 组“TestGroup”:

应用程序/共享/组/TestGroup

我正在 VS 2010 下测试应用程序,以我的域登录名运行,它是 TestGroup 的成员(是的,自从我将自己添加到该组以来,我已经注销/登录)。

我的域名是ABC。

我首先通过以下方式获得 WindowsPrincipal:

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

(顺便说一句,它总是调用 GetWindowsIdentity() ......这可能是问题吗?)

然后我做:

_windowsPrincipal.IsInRole(@"ABC\TestGroup")

...它总是返回假。

我是否将正确的字符串传递给 IsInRole?或者我是否需要指定 AD“树”的完整路径,例如:@"ABC\Apps\Shared\Groups\TestGroup"(我已经尝试了几乎所有排列)。或者这个问题可能是在VS下运行调试引起的?

或者 ????

谢谢!

爸爸猫

4

1 回答 1

1

根据我的评论:看来问题不在代码中。相反,自从我将自己添加到组中以来,我没有重新启动。我原以为只需要注销/登录(“注销/开启”),但显然完全重启是必要的。也许这是Win8的一个新“特性”。

于 2013-07-03T13:28:15.257 回答