我已经阅读了有关此主题的几个问题,例如此处,此处,此处和此处;但就我而言,没有人提供可行的解决方案。
我想做的事:
为仅由我们自己的员工使用的 Web 应用程序实施 Windows 身份验证。这样他们就不需要登录应用程序,但已经通过登录 Windows 进行了身份验证。
此外,我需要根据用户可能分配到的 Active Directory 安全组来限制应用程序的某些区域。
所以我希望能够用
[Authorize(Roles="SomeRole")]
我试过的:
我有
<authentication mode="Windows" />
在我的 web.config 中。我已经添加了一些 a 的排列,这些排列<roleManager>
在上面链接的一些帖子中可以找到。目前我有这个角色经理
<roleManager defaultProvider="WindowsProvider"
enabled="true"
cacheRolesInCookie="false">
<providers>
<add
name="WindowsProvider"
type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
正如在这篇文章中发现的那样。
事实上,如果我用 装饰控制器[Authorize]
,我可以正常访问它。
然而:
我可以在网络上的用户设置中看到,我是名为“IT”的 AD 安全组的一部分。但是,如果我用我装饰同一个控制器,[Authorize(Roles="IT")]
我会得到由 asp.net 开发服务器为未授权的 401 服务的空白屏幕。 这是出乎意料的。 我认为当我登录到 Windows 并且是“IT”组的一部分时,我应该能够查看该页面。
我在这个主题上找到的大部分内容都使得完成我想做的事情听起来很简单,但我显然在这里遗漏了一些东西。