我可以启动一个标准的asp.net mvc 4内部网项目并用以下内容装饰控制器或方法:
[System.Web.Mvc.Authorize(Roles = "MyApp Users")]
我已对其进行了测试,但它可以完美运行(因为我的域帐户是Active Directory中“MyApp用户”的成员)
但是我的问题/问题是如何为"Hot Towel"应用程序获得相同类型的行为?我尝试装饰我的微风控制器,HotTowel控制器或任何具有相同属性的方法,我永远无法验证......是什么给出了?
非常感谢您的帮助。
答案 0 :(得分:5)
终于明白了。我希望这对别人有用。
首先,您必须将WindowsProvider设置为您的角色管理器,如下所示:
<roleManager defaultProvider="WindowsProvider"
enabled="true"
cacheRolesInCookie="false">
<providers>
<add
name="WindowsProvider"
type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
然后,您将能够检查用户的角色[使用Roles.IsUserInRole()],更具体地说,检查此问题使用授权属性。唯一的事情是你必须在authorize属性中包含域,如下所示:
[System.Web.Mvc.Authorize(Roles = "YourDomain\\MyApp Users")]
现在一切都按照您的预期运作。