管理员窗口组中基于角色的安全性

时间:2010-06-13 03:30:51

标签: c# .net security

我正在尝试理解基于角色的安全性,我有以下方法:

[PrincipalPermission(SecurityAction.Demand, Role = "Administrators")]
static void Test()
{
    //administratos only can call this code
}

我想要做的是,只有属于Windows Administrators组成员的用户才能调用此代码,但是,如果我执行以下操作,则可以正常运行:

GenericIdentity genericIdentity = new GenericIdentity("test", "test");
GenericPrincipal genericPrincipal = new GenericPrincipal(genericIdentity, new string[] { "Administrators" });
AppDomain.CurrentDomain.SetThreadPrincipal(genericPrincipal);

Test();

那么,只有当用户位于Administrators窗口组中时,如何才能使其工作?

谢谢!

1 个答案:

答案 0 :(得分:1)

您是否设置了PrincipalPolicy?您需要根据Windows组检查角色。

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)