我有一个WPF应用程序需要确定当前用户是否是AD组的成员。
我在AD“树”中的以下位置创建了AD组“TestGroup”:
应用/共享/群组/测试组
我正在测试VS 2010下的应用程序,作为我的域登录运行,这是TestGroup的成员(是的,我已经注销/打开,因为我将自己添加到该组)。
我的域名是ABC。
我首先通过执行以下操作来获取WindowsPrincipal:
if(!Thread.CurrentPrincipal.Identity.IsAuthenticated) Thread.CurrentPrincipal = new WindowsPrincipal(GetWindowsIdentity());
(BTW,总是调用GetWindowsIdentity()......这可能是问题吗?)
然后我这样做:
_windowsPrincipal.IsInRole(@"ABC\TestGroup")
...总是返回false。
我是否将正确的字符串传递给IsInRole?或者我是否需要指定AD“树”的完整路径,例如:@“ABC \ Apps \ Shared \ Groups \ TestGroup”(我已经尝试了几乎所有的排列)。或者这个问题可能是由VS?
下的调试运行引起的或????
谢谢!
DadCat
答案 0 :(得分:0)
根据我的评论:似乎问题不在代码中。相反,我没有重新启动,因为我将自己添加到组中。我曾经认为需要注销/登录(“注销/开启”),但显然需要完全重启。也许这是Win8的一个新“功能”。