我有一个 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下运行调试引起的?
或者 ????
谢谢!
爸爸猫