【发布时间】:2018-04-11 21:08:02
【问题描述】:
让我们暂时离开 ASP.NET Identity,假设我们正在为我们的应用程序构建一个自定义身份验证/授权系统。
它将包含以下表格以实现完全的灵活性:
用户
角色
权限
用户角色
角色权限
通过以上内容,我们可以拥有应用程序的完整用户管理部分,管理员可以在其中说用户 A 具有角色 B,角色 B 具有权限 C、D、F。
上述方法过去一直对我有用,但现在让我们切换到使用 ASP.NET Identity 的 ASP.NET Core MVC 应用程序。
尝试在 UserManager 中利用 Microsoft 为您提供的所有 ASP.NET Core Identity 我希望仍然能够实现上述目标,但使用 ASP.NET Core Identity MVC 方式。
我所知道的:
我可以轻松地使用 UserManager 为用户和角色以及用户角色实现 CRUD 页面。
我想弄清楚的:
如何复制“角色具有哪些权限/操作?”的相同行为?概念。
我最初的猜测是,您会将声明与角色结合使用。声明被分配给角色,即 RoleClaims,然后角色被分配给用户。
这样我就可以简单地使用 Authorize 标签检查 Controllers/Action 方法之上的 Roles。此外,如果用户的角色没有声明“DeleteProduct”,则在页面级别更进一步说隐藏/显示删除按钮有点像view-based authorization documentation 所说的。
--
我想弄清楚我是否在正确的道路上使用这些东西。任何建议或更正都会有所帮助。
【问题讨论】:
标签: c# asp.net asp.net-core asp.net-identity asp.net-core-identity