无法获得WindowsPrincipal.IsInRole(“domain \\ groupname”)工作

时间:2013-07-01 22:25:22

标签: c# wpf active-directory

我有一个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

1 个答案:

答案 0 :(得分:0)

根据我的评论:似乎问题不在代码中。相反,我没有重新启动,因为我将自己添加到组中。我曾经认为需要注销/登录(“注销/开启”),但显然需要完全重启。也许这是Win8的一个新“功能”。