【问题标题】:What is the best way to manage roles in ActiveDirectory for ASP.NET Website?在 ASP.NET 网站的 Active Directory 中管理角色的最佳方式是什么?
【发布时间】:2014-03-19 00:46:49
【问题描述】:

总结:

我正在使用 Active Directory 为我们域中的用户的 INTRAnet 网站验证用户。处理权限(管理员、主管、读者)的最佳方式是什么?

环境:

我在 Windows Server 2008 R2 上使用带有 IIS 7.5 的 Visual Studio 2012 的 ASP.NET C# (.NET Framework 4.5) 网站。

详细我的问题:

我正在尝试找出处理权限的最佳方法。我可能可以将角色添加到我的项目的活动目录中。该项目名为 Eagle。我想知道我是否应该将 3 个角色添加到 AD 并将它们称为 EagleAdmin、EagleSupervisor 和 EagleReader)或者是否应该在 SQL Server 中为用户创建我的权限(如果是这样,最好的方法是什么?) .

仅供参考:Here 是帮助我弄清楚 AD 身份验证的出色代码项目!

【问题讨论】:

    标签: c# asp.net visual-studio-2012 active-directory active-directory-group


    【解决方案1】:

    您可以利用命名空间 System.DirectoryServices 和 System.DirectoryServices.AccountManagement 中的类

    您可以使用 System.DirectoryServices.AccountManagement.PrincipalContext 类来访问所需的活动目录,并利用 UserPrincipal 的方法通过 GroupPrincipal 获取用户信息和角色。

    using(var context=new PrincipalContext(ContextType.Domain,"YOURDOMAINNAME")
    {
        using(var user=UserPrincipal.FindByIdentity(context,"usernametosearchfor")
         {
    var userGroupsOfCurrentUser=user.GetAuthorizationGroups();
         }
    }
    

    如果对你有帮助,请标记为答案。

    【讨论】:

    • 感谢您的回复 - 我已经这样做了,我的问题是:设置访问结构的最佳方法是什么?我应该在 AD 中为 EagleAdmin、EagleSupervisor、EagleReader 创建 3 个角色,还是应该在 SQL Server 中处理不同的权限级别? (如果是这样,最好的方法是什么?)
    • 这取决于你喜欢哪一个。两者都会起作用。如果您实际上需要组织用户来处理角色,那么请使用基于 Active Directory 的分组方法。如果您将在代码中处理角色,那么您可以选择面向 DB 的方式。
    • 谢谢 Ananthan - 我会将您的答案标记为答案,但我不确定我能否通过评论做到这一点。谢谢。我很高兴能在 AD 中使用这些角色,但我越想越觉得它太过分了,并且使维护变得更加困难。
    • 那么我认为您应该使用基于 SQL Server 的角色管理。
    • 我同意。感谢您的意见!
    猜你喜欢
    • 1970-01-01
    • 2014-06-16
    • 2011-05-05
    • 2021-06-16
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    相关资源
    最近更新 更多