【发布时间】:2018-12-12 06:08:54
【问题描述】:
我正在阅读this 这本书,它谈到使用声明和角色是为了获得更多遗产。它似乎没有谈论的一件事是如何存储这些声明。
假设我有这些声明。
canRead
canWrite
CanUpdate
CanDelete
现在我有两种类型的“角色”管理员(应该有所有这些声明)和用户(应该只有 canRead)。
我应该在存储这些声明的数据库中创建一个新表(或劫持角色表...从书中看来,如果您使用 AspNetUserClaims,您将不会使用角色表)?还是在我的服务层?
例如,正在创建一个新用户,在我的前端,我想让用户选择让这个人成为“管理员”或“用户”。我应该有这样的东西
public Claim {
public string ClaimType { get; set; }
public string ClaimValue { get; set; }
}
//somewhere in a service file.
List<Claim> allClaims = new List<Claim>(){
new Claim() {
ClaimType: "Permission",
ClaimValue: "canRead",
},
new Claim() {
ClaimType: "Permission",
ClaimValue: "canWrite",
},
new Claim() {
ClaimType: "Permission",
ClaimValue: "canUpdate",
},
new Claim() {
ClaimType: "Permission",
ClaimValue: "canDelete",
}
}
var groupedClaims = Dictionary<string,List<Claim>>()
groupedClaims.add("admin", allClaims);
groupedClaims.add("user", [only some of the claims]);
// then when need to create new user grab right group claims and insert into AspNetUserClaims
【问题讨论】:
标签: c# asp.net-core asp.net-identity asp.net-core-2.1