我正在尝试理解基于角色的安全性,我有以下方法:
[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窗口组中时,如何才能使其工作?
谢谢!
答案 0 :(得分:1)
您是否设置了PrincipalPolicy?您需要根据Windows组检查角色。
AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)