- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我仍然对所有这些身份问题感到困惑。
首先,我仍然对角色、政策/声明之间的区别感到困惑。据我了解,角色是旧的处理方式,并且保留是为了向后兼容,那么这是否意味着 AspNetRoleClaims 是向后兼容性的一部分?
当我单独考虑声明和策略时,我认为我理解它们,就像策略基本上是一组必须通过的规则,并提供更改规则的能力,而无需遍历所有代码和更改角色。
如果是一项声明,基本上是一个可信来源为该用户提供担保(即这是他们的年龄,可能来自政府来源)。
现在让我困惑的是把它们放在一起。
我生成了身份表并查看
AspNetUsers
AspNetUserRoles
AspNetRoles
AspNetRoleClaims
AspNetUserClaims
AspNetUserLogins
我明白了 AspNetUsers 表和 AspNetUserLogins 的作用(如果它们像外部登录提供程序一样使用的话,似乎是这样)。
我对 AspNetRoleClaims 和 AspNetUserClaims 之间的区别感到困惑。我只使用 AspNetUserClaims 还是使用所有内容?
假设我有这个场景
我有一家公司,有很多分支机构,在每个分支机构中,他们将成为该分支机构的管理员,他们拥有该分支机构的完全权力,可以做任何事情,但在另一个分支机构什么也不做。在公司级别将有一名管理员,他可以在公司级别和任何分支机构执行任何操作。最后我在分支机构中有一个可以添加新员工的人。
这一切看起来像什么?我要扮演 3 个角色吗?
CompanyAdmin
BranchAdmin
AddUsersAtBranchLevel (or is this some sort of claim??)
What do the tables look like? Is there anything going to be in AspNetRoleClaims? AspNetUserClaims?
现在我可以制定一项策略来检查用户是否是分支管理员以及他们是否正在尝试编辑其分支?
或者我只是忘记了 AspNetUserClaims 中的所有角色内容
User1 CanAddUserToBranch true
User1 CanDeleteUserBranch true
User1 CanAddUserToCompany true
然后在我的代码中创建所有不同的“ClaimTypes”并创建一个策略来查看他们是否说了“CanAddUserToBranch”,然后另一个声明或策略来检查他们所在的分支以确保他们正在尝试添加一些内容正确的分支?
编辑
您认为我需要使用基于资源的授权吗?
最佳答案
+------------------+------------------+
| Table | Description |
+------------------+------------------+
| AspNetUsers | The users. |
| AspNetRoles | The roles. |
| AspNetUserRoles | Roles of users. |
| AspNetUserClaims | Claims by users. |
| AspNetRoleClaims | Claims by roles. |
+------------------+------------------+
如果您发现角色和声明令人困惑,可能是因为角色是声明的特例,即角色就是声明。
角色与策略
对于基于角色的授权,授权系统会检查用户是否已被分配访问给定资源所需的角色。
对于基于策略的授权,会执行一些业务逻辑来决定是否应授权资源访问。
Say I have this scenario
I have a company that has many branches, in each branch their will be an administrator of that branch, they got full power over the branch and can do anything but nothing at another branch. At the company level there will an administrator who can do anything at the company level and any branch. Finally I have a person in the branch who can just add new employees.
这是一种实现方法:
2 个角色: Admin
、TheRoleThatCanAddUsers
名为 Branch
的声明,可以采用分支 ID(或任何其他内容来标识分支)。公司管理员可以使用诸如“CompanyWide”
或0
或-1
之类的值。
现在创建一个策略来检查角色和分支声明并决定是否应授权用户。
关于asp.net-core - Asp.net Core Identity 使用 AspNetUserClaims 还是 AspNetRoleClaims?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50401190/
我在我的解决方案中使用 Microsoft.AspNet.Identity.Core 2.2.1。我需要将其与另一个应自动添加声明的系统集成。 为了跟踪哪些声明是手动添加的以及哪些声明是由外部系统创建
我想存储一些额外的用户信息。据我了解,以下是通常的选择: public class ApplicationUser : IdentityUser { public async Task
我仍然对所有这些身份问题感到困惑。 首先,我仍然对角色、政策/声明之间的区别感到困惑。据我了解,角色是旧的处理方式,并且保留是为了向后兼容,那么这是否意味着 AspNetRoleClaims 是向后兼
我们的应用程序不需要身份使用的过多“登录”和“声明”功能。如果没有在数据库中创建这些表 simlpy 就好了,但我不想重新实现所有身份类... 我猜是这样的 public ApplicationDbC
我是一名优秀的程序员,十分优秀!