我正在开发一个使用承载令牌并声称对我的用户进行身份验证和授权的API。
一切都很好。但我想知道角色管理与此设置。
我是否必须将角色存储为声明才能使[Authorize(Roles =“”)]属性起作用? 目前我在两个表中有用户角色,AspNetUserRoles和AspNetUserClaims,因为如果属性不在令牌中(不在声明表中),则该属性不会读取用户角色。将角色存储在两个表中似乎有些过分。
为什么?可以通过UserManager访问与用户相关的所有其他内容,我认为该角色将从相关实体而不是通过令牌读取。
答案 0 :(得分:0)
哦,我明白了。现在它有效。 AspNetUserRoles中的角色会自动添加到令牌中。 因此不需要在两个表中存储角色。 我不知道为什么它以前不起作用。但是在发布了一些新的令牌后,它似乎有效。