【问题标题】:MVC 5 - Roles - AuthorizeAttribute outdatedMVC 5 - 角色 - AuthorizeAttribute 已过时
【发布时间】:2014-11-02 18:51:24
【问题描述】:

在我的previous post 中,我询问了如何检查/添加用户角色,但现在我面临另一个问题。 由于微软迁移到新的 Identity 2.0,AuthorizeAttribute 不再起作用。

Authorize 有替代过滤器吗?

编辑:

我进行了一些测试,[Authorize(Users = "SOME_ID")] 有效,但 [Authorize(Roles = "Admin")] 无效。

我验证了用户是否真的是那个角色(管理员)

【问题讨论】:

  • Authorize 工作正常。在内部,它正在检查声明 cookie 中是否存在角色。您应该将代码发布在您向用户提供声明的地方,并确保角色在那里。

标签: c# .net asp.net-mvc-5 claims-based-identity asp.net-roles


【解决方案1】:

实际上 [Authorize(Roles = "ROLENAME")] 工作正常。

根据您的问题,检查您的 userRoles(或 AspNetUserRoles)表,了解您使用的 ID 为 SOME_ID 的分配角色。如果不是,您必须在创建用户时正确地为用户分配角色“Admin”。

希望这会有所帮助。

【讨论】:

  • 好吧,我把 Indentity 2.0 搞砸了……我尝试安装 identity 1.0,但有些方法停止工作。当我删除了乱七八糟的文件时,我还删除了旧的 asp 表并忘记填充新的。
  • 我注意到角色名称也区分大小写
猜你喜欢
  • 2012-09-02
  • 1970-01-01
  • 2012-02-21
  • 2014-12-23
  • 2013-11-10
  • 1970-01-01
  • 2014-11-02
  • 2015-07-21
  • 2013-10-17
相关资源
最近更新 更多