首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IIS中的Windows身份验证-禁止本地用户访问MVC4应用

IIS中的Windows身份验证-禁止本地用户访问MVC4应用
EN

Stack Overflow用户
提问于 2014-12-05 20:50:00
回答 2查看 222关注 0票数 0

我们在MVC4应用程序中使用IIS7-8。访问受IIS内置Windows身份验证保护。本地用户(在服务器上添加)和在AD中注册的用户可以登录。如何排除本地用户的登录权限?

EN

回答 2

Stack Overflow用户

发布于 2014-12-05 20:57:57

我的建议是基于AD组构建身份验证。

您可以创建一个或多个AD组,并将所需用户添加到该组。然后,您可以将对web应用程序的访问限制为仅限于这些组。

然后,在MVC中,您可以在操作、控制器上使用Authorize属性,或者将其设置为全局过滤器。

基本用法

代码语言:javascript
复制
[Authorize(Roles=@"MyCompanyDomain\\company-group-name-here")]  
票数 0
EN

Stack Overflow用户

发布于 2015-03-13 18:25:52

我通过我的MVC4 C#代码找到了一个解决方案:

代码语言:javascript
复制
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;
}

在我的控制器中,调用该方法并传递标识:

代码语言:javascript
复制
if(IsLocalUser(HttpContext.User.Identity as WindowsIdentity))
{
    // block and refer to error site.
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27316290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档