我看到我可以创建一个使用NTLM身份验证的intranet身份验证。这几乎就是我需要的。此外,我还需要检查用户是否在AD中的指定组中。
有没有简单的方法可以做到这一点?它适用于一个非常小的web应用程序(8-10天的开发)。
谢谢
发布于 2012-09-12 15:34:30
var ctx = new PrincipalContext(ContextType.Domain);
var userPrincipal = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, userName);
var groups = userPrincipal.GetGroups();这里有与当前用户相关联的所有第一级组。如果你想更深入地检查,比如第一级组所属的组,你必须编写递归函数,它将遍历整个组图。
var ctx = new PrincipalContext(ContextType.Domain);
var groupPrincipal = GroupPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, childGroup.SamAccountName);
var currentLevelGroups = groupPrincipal.GetGroups();使用这三行代码,您可以获得指定组的父组。
您可以在每个步骤中检查给定的组是否属于收集到的组,如果是,则中断并返回true。
发布于 2012-10-08 17:25:55
您可以向有问题的控制器添加Authorize属性,并使用一个参数来检查组。
例如
[Authorize("mydomain/admin")]
public class MyController : Controller
{
}您还需要在网站上启用windows身份验证。
HTH
是的
https://stackoverflow.com/questions/12382917
复制相似问题