asp.net-mvc – 使用Windows身份验证与活动目录组作为角色
我已经读过几个关于这个话题的问题,
例如 here,here,here和 here; 但没有一个在我的情况下提供了一个工作的解决方案。 我想做什么: 为仅由我们自己的员工使用的Web应用程序实施Windows身份验证。这样他们不应该需要登录到应用程序,但已经通过登录窗口的方式进行身份验证。 此外,我需要限制应用程序的某些区域,根据用户可能被分配到的Active Directory安全组。 所以我想要能够装饰控制器/操作 [Authorize(Roles="SomeRole")] 我试过: 我有 <authentication mode="Windows" /> 在我的web.config。我已经添加了一个< roleManager>在一些链接到上面的帖子中找到。目前我有这个角色经理 <roleManager defaultProvider="WindowsProvider" enabled="true" cacheRolesInCookie="false"> <providers> <add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider" /> </providers> </roleManager> 如this帖子中所示。 因为它是,如果我用[授权]装饰控制器,我可以访问它。 然而: 我可以看到在我的网络上的用户设置,我是AD安全组名为“IT”的一部分。但是如果我用[Authorize(Roles =“IT”)]装饰相同的控制器,我得到由asp.net开发服务器为401未授权的空白屏幕。这是意想不到的。我认为我应该能够查看该页面,因为我登录到Windows和组“IT”的一部分。 我在这个主题上找到的大多数东西使得它听起来很简单,完成我想做的,但我显然缺少这里的东西。 解决方法
对于dev我使用IISExpress
与开发服务器属性的MVC项目建立起来 禁用匿名身份验证,并启用Windows身份验证。 使用我们的TFS构建服务器来部署Web配置,以测试和发布服务器,其身份验证也如上所述设置,并在这些位置工作。 在我的web.config我有。 <system.web> .... <authentication mode="Windows" /> <authorization> <deny users="?" /> </authorization> <roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider"> <providers> <clear /> <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" /> </providers> </roleManager> .... </system.web> 我可以用 [Authorize(Roles = @"DOMAINADGroup")] Public ActionResult Index() {...} 要么 public ActionResult Index() { var User = System.Web.HttpContext.Current.User; if (User.IsInRole("DOMAINADGroup")) { return RedirectToAction("IRSAdmin"); } return View(); } 之后,我记得退出并重新登录,所以我被授予AD组的权限被应用。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 使用匈牙利表示法在VB.NET中验证命名样式的工具
- asp.net-mvc – HTML提交按钮与基于AJAX的Post(ASP.NET MVC
- asp.net – WCF安全 – 我不明白的列表
- asp.net-mvc – 禁止使用[授权]操作过滤器的控制器方法的浏
- asp.net-mvc – 如何根据设备类型更改ASP.NET MVC视图?
- 将ASP.NET 5远程发布到IIS
- asp.net – 如何在EditItemTemplate中使用Bind()获取可空属
- 经典asp和IIS应用程序池之间的关系是什么?
- asp.net – 使用GhostScript将PDF转换为服务器上的图像集合
- asp.net – 在Application_BeginRequest中设置会话变量
- asp.net-mvc-3 – DotNetOpenAuth.Asp在MVC4应用
- Asp.Net和Asp.Net MVC中的Ajax之间的区别
- asp.net core swagger使用及注意事项
- 关于asp.net调用gemalto超级狗api的具体实现
- ASP.NET:如何更快地加载页面
- ASP.Net MVC中长时间运行服务器调用的进度条
- asp.net – System.Web.Providers.DefaultMember
- asp.net-mvc-3 – MVC3:EF Code First和身份验证
- asp.net – 禁用ASPNET标识2.0中的用户
- .net – 将GUID转换为整数和后退