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