【问题标题】:Role Based Security in the Administrators windows group管理员窗口组中基于角色的安全性
【发布时间】:2012-03-09 02:06:40
【问题描述】:

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

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

我想要做的是只有属于 Windows 管理员组成员的用户才能调用此代码,但是,如果我执行以下操作,它会起作用:

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

Test();

那么,只有当用户在 Administrators windows 组中时,我才能使其工作?

谢谢!

【问题讨论】:

    标签: c# .net security


    【解决方案1】:

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

    AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal)
    

    【讨论】:

    • 我应该在哪里添加这行代码?在我的受保护方法 Test 中?
    • 您可以将它添加到应用程序启动代码中的某个位置。您可能希望在尝试要求安全之前设置策略。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 2013-03-21
    • 2011-05-12
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多