C# 如何管理用户声明?
我目前正在设计一个使用asp.net内核的系统,我想实现基于声明的授权,但有一个特定的部分让我感到困惑 当提出索赔时,索赔将包括类型和值,以及可选的发卡机构。在处理程序中,可以在确认访问之前检查该声明和发卡机构 但是,该颁发者不存储在标识数据库中,那么处理程序如何检查该颁发者 我是不是误解了这一切是怎么回事?我的理解是,用户提出某种类型的声明,他们的声明具有一定的价值,而发行人是声明类型的验证者,实际上对该用户具有该价值 处理程序将检查该值,并可以检查颁发者,但当db不存储该值时,它无法进行检查。我不明白发行人的意思 我希望用户拥有一组声明,包括谁/什么验证了这些声明,并且应用程序可以随时验证这些声明 请帮我理解 我对此进行了测试,如下所示:C# 如何管理用户声明?,c#,asp.net,authentication,asp.net-core,claims-based-identity,C#,Asp.net,Authentication,Asp.net Core,Claims Based Identity,我目前正在设计一个使用asp.net内核的系统,我想实现基于声明的授权,但有一个特定的部分让我感到困惑 当提出索赔时,索赔将包括类型和值,以及可选的发卡机构。在处理程序中,可以在确认访问之前检查该声明和发卡机构 但是,该颁发者不存储在标识数据库中,那么处理程序如何检查该颁发者 我是不是误解了这一切是怎么回事?我的理解是,用户提出某种类型的声明,他们的声明具有一定的价值,而发行人是声明类型的验证者,实际上对该用户具有该价值 处理程序将检查该值,并可以检查颁发者,但当db不存储该值时,它无法进行检查
我是不是有点疯了?在你链接到这个问题的时候,把这篇文章发到这里,它可能对某些人有用 我想你对索赔的性质有点误解, 从术语上我能理解,你似乎在 “Claim”表示用户“声称”他们有某种 属性,并且您希望检查这是否为真 这不是索赔的工作方式。索赔本质上是 用户的“属性”。在使用角色的旧方法中,用户 将属于一定数量的角色。这些只是“属性” 用户现在有,所以更通用。一个用户可能有多个 与他们所处角色对应的声明 在身份验证期间检查用户的身份,并且 将用户拥有的
声明集分配给
ClaimsIdentity
对象。这是您获取索赔的点
数据库,并确保他们只得到他们应该拥有的。
如果您需要有人验证索赔,那么您需要
让整个过程都发生在这件事之外。只有索赔
应将已确认的内容添加到索赔中
现在,您可以在上处理一个事件
CookieAuthenticationMiddleware
用于验证安全票证
在名为ValidatePrincipal的后续请求中加载,但我没有
当然,如果这是你真正需要的
以及你随后的回应:
谢谢你的回复。我现在知道这些索赔是
一旦他们进入db,有效地核实了索赔。我想他们
可以从db中删除,作为撤销索赔的一种方式
然而,我认为,正如你所建议的,最好的办法是建立这个系统
它只是在需要时提供声明
应用程序将拥有不同类型的帐户
实体和账户将能够提出索赔,例如“I
“我是家长”。家长将寻求授权帐户进行验证
这可能需要授权账户持有人
在验证之前,请查看一些真实的文档。其他声明,可以
改变。例如,有父母责任的父母需要
更多的验证,但也可能失去父母的责任
在现实世界中,因此需要建立一个撤销索赔的机制
可用
因此,我认为设计应该是使用索赔系统
授权属性跟随你的优秀文章,但要有一个
单独的系统,允许验证和撤销馈送
这就是索赔制度
嘿。对不起,我不得不删除我的答案,因为我没有足够的时间来修正我的答案,而且在当前的状态下,它似乎不是你想要的…我希望其他用户能够帮助你。Matías-无论如何谢谢你的时间谢谢你。我只是在这里发布了一个答案,在你的博客上引用了你的回复。所以我will只是补充:Andrew Lock的回复很好:。我试图推动索赔系统做一些它不是设计用来做的事情,因此解决方案是在索赔系统之外编写验证和撤销,并且只包含索赔