gpt4 book ai didi

asp.net-identity - ASP.NET 标识 : Why User Properties AND Claims?

转载 作者:行者123 更新时间:2023-12-04 04:11:06 27 4
gpt4 key购买 nike

我现在真的迷失在理解 ASP.NET Identity 2.1.0 的过程中,需要回顾一下基础知识,以便更好地理解 cookie 和声明的工作原理。

一个基本的查询是围绕我不确定我是否理解为什么用户需要属性以及声明:不是声明只是一个键+值+权限,因此可以用于存储属性(键+值) ?
* 保留两组属性有什么好处(除了属性上的 Typed get/sets)?一个是否打算比另一个更短暂?
* 是否只是为了区分 Cookie 中的序列化和往返(仅声明,对吧?)?
* 说到这……只是检查一下:所有的 Claims 都是通过在 cookie 中序列化来进行往返的,还是只是它们的一个子集(例如 ClaimTypes.Roles)?

谢谢您的帮助!

最佳答案

对用户的所有声明都被序列化为 cookie。不是所有 ApplicationUser属性被序列化为声明。事实上,大多数属性都没有序列化到声明中(除非专门编码)。

您混淆了 2 个概念:声明是 ClaimsPrincipal : IPrincipal 的一部分可用于每个 HTTP 请求(如果用户已通过身份验证)。 ClaimsPrincipal创建自 ApplicationUser当用户登录并序列化为 cookie 时。
ApplicationUser模型是一种将用户信息持久化到数据库中的方法,附加属性只是数据库中用户表的附加字段。您可以编写代码,通过添加声明使这些属性在您的 cookie 中可用,但它们不会自动成为您的声明。

添加额外信息可以通过添加声明或通过 ApplicationUser 中的附加属性来实现。表。您可以控制如何添加数据。但请记住,这些可以用于不同的目的。如果您在 ApplicationUser 上添加属性,您是说所有用户都应该为此有所作为。如果您添加具有相同数据的声明,则表示该用户拥有其他用户可能没有的一些数据。

回答您的最后一个问题:所有声明都在 cookie 中进行序列化和往返。因此,不要在 cookie 中放入太多信息——这些信息会累加起来,您将往返传输太多数据。

关于asp.net-identity - ASP.NET 标识 : Why User Properties AND Claims?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26356613/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com