ASP.NET核心权限

时间:2017-06-05 12:46:34

标签: asp.net-core openiddict

我迷失在管理用户可以做什么以及用户无法做什么的所有选项中。 我从角色开始:[Authorize(Roles = Constants.Roles.ModeratorAndUp)]。 ModeratorAndUp是字符串"Moderators, Administrators" 但我需要更灵活的方法。在过去的3个小时里,我正在阅读索赔和许可证。我还发现了这个有趣的博客post

我正在使用Angular和ASP.NET Core以及Universal模板。对于身份验证,我使用的是OpenIddict我正在读一本书。

我想使用JWT令牌进行授权和身份验证。我不知道如何在.NET Core中处理权限,但我有100个不同的角色,而且它完全混乱。而且当我创建新用户时,我需要手动添加20个角色。如果我可以创建具有角色/权限的组,然后将用户添加到该组,那将是很好的。但是不知道这个设计将如何与OpenIdDict和JWT令牌授权一起使用。

有人能指出我正确的方向,然后我会自己研究 我不确定是否应该构建一个在我更改组权限/角色时自动更新用户角色的系统,我应该使用声明...我想使用[Authorize]属性,因为它确实简化了事情。 / p>

在ASP.NET Core中执行JWT令牌身份验证/授权的最佳做法是什么/如何/最佳。

1 个答案:

答案 0 :(得分:1)

认为声明比角色更灵活。也就是说,如果您的复杂业务规则不一定只是映射到用户所属的组,您可以将权限封装到Privileges(其权限是确定给定用户是否对给定资源具有特定权限的类)。点击此处:http://ardalis.com/favor-privileges-over-role-checks

根据我的经验,这往往会减少UI层中的大量条件复杂性。