我正在编写一个Web应用程序,而我正在尝试对管理员用户进行身份验证。我希望通过在我添加域用户的服务器上安装本地组来实现此目的。我有一个名为ProductionManagers
的组,我将具有管理员权限的人添加到其中。其他用户具有仅查看权限。
我想要做的是搜索服务器上的AD(对吗?)并查看当前登录的用户是否是ProductionManagers
组的成员(这是服务器上的一个组,而不是域组)。
这样做的最佳方法是什么?或者你有一个更好的机制建议,而不是在我添加管理员的本地小组?
答案 0 :(得分:0)
如果使用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之类的内容来从本地商店中检索组成员身份信息。