【发布时间】:2016-09-19 00:56:22
【问题描述】:
我正试图围绕 Asp.Net Identity 展开思考。但不幸的是,可用的文档不是很清楚,或者我觉得它只是在我头上:(
但是,follow 是基于全天研究和阅读的高级理解。当用户登录时,会提供一组声明。使用这些声明,您可以启用/禁用功能。例如,如果用户声称他们的年龄是 30 岁,那么您可以允许他们查看仅限成人的内容,但如果他们声称自己是 17 岁,那么您拒绝访问他/她:)。此外,“管理员”、“超级用户”等用户的角色可用于启用/禁用访问。如果用户具有“Admin”角色,您可以允许他们访问 X 操作方法。
但是,有很多事情让我感到困惑,让我无法清楚地理解它。
场景
假设我想用一个控制器创建一个新的应用程序。这个控制器有两个动作方法Add和Edit。我猜我需要为每个用户提供两个声明
new Claim {
UserId = 10,
ClaimType = "Can Add",
ClaimValue = null
},
new Claim {
UserId = 10,
ClaimType = "Can Edit",
ClaimValue = null
}
new Claim {
UserId = 5,
ClaimType = "Can Edit",
ClaimValue = null
}
在这种情况下,Id = 10“可以添加”和“可以编辑”的用户,但 UserId = 5“可以添加”的用户无法编辑。
这些声明何时创建并分配给用户?我是否可以根据需要手动将这些声明插入AspNetUserClaims 表中?我是否将它们分配给用户个人资料中的用户?
如果我以后需要添加新的声明,我需要手动将这个新声明分配给所有用户吗?或者有没有办法将这些声明分配给用户可以继承的默认角色?
这可能不是一个好问题,但回答它会帮助我更好地理解身份。
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-identity claims-based-identity