MVC5使用Windows身份验证和自定义用户存储的角色使用默认的Authorize属性

时间:2015-01-16 17:19:43

标签: asp.net-mvc-5 authorization asp.net-identity-2

系统 我有和MVC5 Web应用程序使用Windows身份验证。 有一个旧数据库,我已经拥有用户,组和角色。

目标 使用标准[Authorize(Roles =“myExistingRole”)]而不创建自定义属性,重用数据库中的现有角色和用户。

当前状态

  • 我使用EF6,.net 4.5.1。
  • 我可以使用[Authorize]属性。 (OK)
  • 我可以登录并正确填充User.Identity。 (OK)
  • 我正确扩展了IUser,IUserStore,IRole,IRoleStore等。 (OK)
  • 我可以成功使用UserManager获取我需要的所有数据。 (OK)
  • 我可以使用UserManager来验证用户是否在角色中。 (OK)
  • User.IsInRole(“myExistingRole”)返回false,但应返回true。 (BAD)

问题 [授权(Roles =“myExistingRole”)]从未授权我。 User.IsInRole(“myExistingRole”)总是回复false。

我的观点 我不知道应该怎么做来指示系统使用我的实现。 我知道的唯一选择是创建一个自定义属性并将其注册为过滤器,但我更喜欢使用标准属性,并且可能在将来使用声明扩展它。

你能帮我理解我做错了吗?

0 个答案:

没有答案