可以';无法使WindowsPrincipal.IsInRole(“域组名”)正常工作

本文关键字:组名 工作 常工作 WindowsPrincipal 可以 IsInRole | 更新日期: 2023-09-27 18:20:48

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

我在AD"树"中的以下位置创建了AD组"TestGroup":

应用程序/共享/组/TestGroup

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

我的域名是ABC。

我首先通过以下操作获得WindowsPrincipal:

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

(BTW总是调用GetWindowsIdentity()。。。这会是问题吗?)

然后我做:

_windowsPrincipal.IsInRole(@"ABC'TestGroup")

其总是返回false。

我是否将正确的字符串传递给IsInRole?或者我需要指定AD"树"的完整路径,比如:@"ABC''Apps''Shared''Groups''TestGroup"(我几乎尝试过每种排列)。或者这个问题可能是由VS下的调试运行引起的?

或者????

谢谢!

DadCat

可以';无法使WindowsPrincipal.IsInRole(“域组名”)正常工作

根据我的评论:问题似乎不在代码中。相反,自从我加入团队后,我就没有重新启动过。我原以为只需要注销/登录("注销/登录"),但显然需要完全重新启动。也许这是Win8的一个新"功能"。