ASP.NET Identity 中票据的概念
内容提要
ASP.NET Identity中的票据是用于表示用户身份验证信息的结构。它通常包含声明、身份验证方案和其他创建或验证用户身份验证状态所需的信息。票据的概念通常与基于cookie的身份验证相关联,其中此信息被序列化为cookie或令牌,并用于在后续请求中重新验证用户。票据在ASP.NET Core中是身份验证系统的核心部分,它包装了ClaimsPrincipal(包含有关用户的声明)和其他元数据,如所使用的身份验证方案。票据在用户登录时生成,并在稍后存储和检索以确定用户的身份。它在cookie-based身份验证中使用,当用户经过身份验证时,会创建并存储一个身份验证票据作为cookie。当用户进行后续请求时,cookie将被发送回服务器,服务器将提取、反序列化并使用身份验证票据重新验证用户。
关键要点
-
在ASP.NET Identity中,票据用于表示用户身份验证信息,通常包含声明和身份验证方案。
-
票据的概念与基于cookie的身份验证相关联,信息被序列化为cookie或令牌,用于后续请求中的用户重新验证。
-
在ASP.NET Core中,AuthenticationTicket是身份验证系统的核心部分,封装了ClaimsPrincipal和其他元数据。
-
AuthenticationTicket在用户登录时生成,并存储在cookie或令牌中,以便后续检索用户身份。
-
ClaimsPrincipal表示当前用户的身份,包含一个或多个ClaimsIdentity对象,提供用户的详细信息。
-
在基于cookie的身份验证中,用户经过身份验证后创建并存储身份验证票据作为cookie。
-
当用户进行后续请求时,cookie被发送回服务器,服务器提取并反序列化身份验证票据以重新验证用户。
-
身份验证票据在持久化时被序列化为特定格式(如JSON或base64编码),以便在请求中使用。
-
SignInAsync方法用于创建并存储身份验证票据,ClaimsPrincipal代表用户身份。
-
在后续请求中,服务器会反序列化cookie中的身份验证票据以恢复用户身份。
-
AuthenticationTicket的重要属性包括Principal(用户身份)和Properties(票据的额外元数据)。
-
票据的生命周期包括创建、持久化、检索和过期,通常通过ExpiresUtc或IsPersistent属性配置。
-
ASP.NET Identity中的票据是用户身份验证信息的容器,支持持久和无状态的用户身份验证。