如何使用Hot Towel角色使用Windows身份验证?

时间:2013-03-26 02:37:29

标签: asp.net-mvc-4 breeze hottowel

我可以启动一个标准的asp.net mvc 4内部网项目并用以下内容装饰控制器或方法:

[System.Web.Mvc.Authorize(Roles = "MyApp Users")]

我已对其进行了测试,但它可以完美运行(因为我的域帐户是Active Directory中“MyApp用户”的成员)

但是我的问题/问题是如何为"Hot Towel"应用程序获得相同类型的行为?我尝试装饰我的微风控制器,HotTowel控制器或任何具有相同属性的方法,我永远无法验证......是什么给出了?

非常感谢您的帮助。

1 个答案:

答案 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")]

现在一切都按照您的预期运作。