【问题标题】:How do I use windows authentication with roles with Hot Towel?如何使用带有 Hot Towel 角色的 Windows 身份验证?
【发布时间】:2013-03-15 17:40:43
【问题描述】:

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

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

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

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

非常感谢您的帮助。

【问题讨论】:

  • 您有角色提供者设置吗?检查 IPrincipal 并查看您是否也已登录。
  • 我正在使用 asp.net mvc 的默认角色提供程序...没有自定义。是的,如果我检查 IPrincipal,它会显示我已登录。

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


【解决方案1】:

终于明白了。我希望这对其他人有用。

首先,您必须将 WindowsProvider 设置为您的角色管理器,如下所示:

<roleManager defaultProvider="WindowsProvider"
   enabled="true"
   cacheRolesInCookie="false">
  <providers>
    <add
      name="WindowsProvider"
      type="System.Web.Security.WindowsTokenRoleProvider" />
  </providers>
</roleManager>

然后您将能够检查用户的角色 [使用 Roles.IsUserInRole()],更具体地说,对于这个问题 使用授权属性。唯一的问题是您必须在授权属性中包含域,如下所示:

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

现在一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 2020-11-20
    相关资源
    最近更新 更多