我们在MVC4应用程序中使用IIS7-8。访问受IIS内置Windows身份验证保护。本地用户(在服务器上添加)和在AD中注册的用户可以登录。如何排除本地用户的登录权限?
发布于 2014-12-05 20:57:57
我的建议是基于AD组构建身份验证。
您可以创建一个或多个AD组,并将所需用户添加到该组。然后,您可以将对web应用程序的访问限制为仅限于这些组。
然后,在MVC中,您可以在操作、控制器上使用Authorize属性,或者将其设置为全局过滤器。
基本用法
[Authorize(Roles=@"MyCompanyDomain\\company-group-name-here")] 发布于 2015-03-13 18:25:52
我通过我的MVC4 C#代码找到了一个解决方案:
public static bool IsLocalUser(WindowsIdentity pIdentity)
{
// establish domain context
PrincipalContext lMachineContext = new PrincipalContext(ContextType.Machine);
// find user
UserPrincipal lMachineUser = UserPrincipal.FindByIdentity(lMachineContext, pIdentity.Name);
return lMachineUser != null;
}在我的控制器中,调用该方法并传递标识:
if(IsLocalUser(HttpContext.User.Identity as WindowsIdentity))
{
// block and refer to error site.
}https://stackoverflow.com/questions/27316290
复制相似问题