实体框架 – 为什么没有[Authorize(Roles =“Admin”)]在具有ASP.NET身份的MVC 5 RTM中工作?

前端之家收集整理的这篇文章主要介绍了实体框架 – 为什么没有[Authorize(Roles =“Admin”)]在具有ASP.NET身份的MVC 5 RTM中工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
[Authorize(Roles =“Admin”)]是否在MVC 5 RTM中与 ASP.NET Identity开箱即用?

我没有运气.请注意,[Authorize]和[Authorize(Users =“AdminUser”)]工作正常,AspNetUserRoles和AspNetRoles表格按照我们期望的方式进行填充,建立AdminUser用户和Admin角色之间的关系.这个问题似乎特定于角色.

解决方法

用户可能需要重新身份验证才能接收包含管理员角色成员资格的新声明.由于MVC 5在开箱即用的情况下使用ASP.NET身份认证,默认情况下,MVC 5中的ASP.NET身份存储在用户Cookie中声称的角色,这些信息可能会变得陈旧(因此数据库表示有一件事,但用户的Cookie表示别的东西)重新认证用户将刷新他们的声明,包括用户角色声明,以匹配数据库的当前状态.

例如:

如果用户数据库中分配给管理员角色之前登录,用户将被授予权限,但不会将其分配给管理员角色.如果稍后将它们添加管理员角色中,则存储在其Cookie中的声明不会自动更新.相反,只有数据库已被更新,应用程序必须重新认证它们,然后再将旧的声明替换为包含管理员角色成员身份的新声明.让用户手动退出并重新登录,是重新验证该用户的最明显的方式.

这是Using Claims in ASP.NET Identity的一篇文章

原文链接:https://www.f2er.com/aspnet/249516.html

猜你在找的asp.Net相关文章