【问题标题】:User member of group in a particular computer?特定计算机中组的用户成员?
【发布时间】:2012-06-20 06:49:00
【问题描述】:

我正在编写一个 Web 应用程序,并且正在尝试对管理员用户进行身份验证。我希望通过在我将域用户添加到的服务器上拥有一个本地组来做到这一点。我有一个名为ProductionManagers 的组,我将具有管理员权限的人添加到其中。其他用户只有查看权限。

我想要做的是搜索查询服务器上的 AD(对吗?)并找出当前登录的用户是否是 ProductionManagers 组的成员(这是服务器上的一个组,而不是域组)。

这样做的最佳方法是什么?或者,也许你有一个比我添加管理员的本地组更好的机制的建议?

【问题讨论】:

    标签: active-directory local membership active-directory-group


    【解决方案1】:

    如果使用 ASP.NET 和表单身份验证,

    WindowsPrincipal principal = new WindowsPrincipal(new WindowsIdentity("youruser@domain.com"));
    if (principal.IsInRole("ProductionManagers"))
    {
       // Authenticated
    }
    

    如果使用 ASP.NET 和 Windows 身份验证,

    WindowsPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
    if (principal.IsInRole("ProductionManagers"))
    {
       // Authenticated
    }
    

    如果使用 Java、PHP、Ruby 等其他软件,您需要调用 .NET API 或 Win32 API 来执行此操作。您不能简单地通过 LDAP 查询来检索该信息。原因是本地组的组成员信息实际上存储在本地计算机上,而不是 Active Directory 上。

    您需要调用类似NetLocalGroupGetMembers 的方法从本地存储中检索组成员信息。

    【讨论】:

    • 谢谢。我会试试看。不幸的是,我现在离开了那个项目。希望我能有时间尽快再次工作:)
    猜你喜欢
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多