ClaimsIdentity 类

定义

表示基于声明的标识。

public ref class ClaimsIdentity : System::Security::Principal::IIdentity
public class ClaimsIdentity : System.Security.Principal.IIdentity
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class ClaimsIdentity : System.Security.Principal.IIdentity
type ClaimsIdentity = class
    interface IIdentity
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type ClaimsIdentity = class
    interface IIdentity
Public Class ClaimsIdentity
Implements IIdentity
继承
ClaimsIdentity
派生
属性
实现

注解

ClaimsIdentity 是基于声明的标识的具体实现;即由声明集合描述的标识。 声明是有关颁发者创建的实体的声明,该声明描述了该实体的属性、权利或某种其他质量。 这种实体据说是索赔的对象。 声明由 Claim 类表示。 包含在 中的 ClaimsIdentity 声明描述相应标识所表示的实体,可用于做出授权和身份验证决策。 与完全依赖角色的较传统的访问模型,基于声明的访问模型具有许多优势。 例如,声明可以提供有关它们所表示的标识的更丰富的信息,并且可以以更具体的方式评估授权或身份验证。

从 .NET Framework 4.5 开始,Windows Identity Foundation (WIF) 和基于声明的标识已完全集成到 .NET Framework。 这意味着表示.NET Framework中标识的许多类现在派生自 ClaimsIdentity 并通过声明集合来描述其属性。 这与以前版本的 .NET Framework不同,在这些版本中,这些类直接实现了 IIdentity 接口。 可以通过 属性访问 Claims 描述标识的声明集合。 类 ClaimsIdentity 提供了几种用于查找和修改声明的方法,并完全支持语言集成查询 (LINQ) 。 在应用程序代码中, ClaimsIdentity 对象通常通过 ClaimsPrincipal 对象进行访问;例如,由 返回的 Thread.CurrentPrincipal主体。

注意

ClaimsPrincipal 也具有 Claims 属性。 在大多数情况下,应通过 ClaimsPrincipal.Claims 集合而不是 Claims 集合访问用户的声明。 只有在主体包含多个ClaimsIdentity且需要评估或修改特定标识的情况下,才需要访问个人ClaimsIdentity声明。

重要

若要在集合中 Claims 添加或删除声明,调用方必须具有完全信任。

在基于声明的模型中, IIdentity.Name 属性和 IPrincipal.IsInRole(String) 方法通过评估标识包含的声明来实现。 基于声明的模型中的基本实现由 ClaimsIdentity.Name 属性和 ClaimsPrincipal.IsInRole 方法提供。 使用 NameClaimTypeRoleClaimType 属性可以指定一个声明类型,在执行这些操作时,该声明类型应该用于评估标识包含的声明。

通过 ActorBootstrapContext 属性支持委派方案。

构造函数

ClaimsIdentity()

用空声称集合初始化 ClaimsIdentity 类的新实例。

ClaimsIdentity(BinaryReader)

用指定的 BinaryReader 初始化 ClaimsIdentity 的实例。

ClaimsIdentity(ClaimsIdentity)

从现有 ClaimsIdentity 实例初始化 ClaimsIdentity 类的新实例。

ClaimsIdentity(IEnumerable<Claim>)

使用枚举集合 ClaimsIdentity 对象的初始化 Claim 类的新实例。

ClaimsIdentity(IEnumerable<Claim>, String)

用指定的声称和身份验证类型初始化 ClaimsIdentity 类的新实例。

ClaimsIdentity(IEnumerable<Claim>, String, String, String)

用指定的声明、身份验证类型、名称声明类型、角色声明类型初始化 ClaimsIdentity 类的新实例。

ClaimsIdentity(IIdentity)

初始化 ClaimsIdentity 类的新实例,该类表示具有指定的 IIdentity 用户。

ClaimsIdentity(IIdentity, IEnumerable<Claim>)

使用指定的 ClaimsIdentity 和类型提供程序初始化 IIdentity 类的新实例。

ClaimsIdentity(IIdentity, IEnumerable<Claim>, String, String, String)

从指定的 ClaimsIdentity 用指定的声明、身份验证的类型、名称声明类型、角色声明类型来初始化 IIdentity 类的新实例。

ClaimsIdentity(SerializationInfo)

从使用 ISerializable 创建的序列化流初始化 ClaimsIdentity 类的新实例。

ClaimsIdentity(SerializationInfo, StreamingContext)

从使用 ISerializable 创建的序列化流初始化 ClaimsIdentity 类的新实例。

ClaimsIdentity(String)

用空的声明集合和指定的身份验证类型初始化 ClaimsIdentity 类的新实例。

ClaimsIdentity(String, String, String)

用指定的声明、身份验证的类型、名称声明类型、角色声明类型来初始化 ClaimsIdentity 类的新实例。

字段

DefaultIssuer

默认颁发者,“地方当局”。

DefaultNameClaimType

默认名称声明类型;Name

DefaultRoleClaimType

默认角色声明类型;Role

属性

Actor

获取或设置被授予委派权利的调用方的标识。

AuthenticationType

获取身份验证类型。

BootstrapContext

获取或设置用于创建此声明标识的令牌。

Claims

获取与此声明标识关联的声明。

CustomSerializationData

包含派生类型提供的任何其他数据。 通常在调用 WriteTo(BinaryWriter, Byte[]) 时设置。

IsAuthenticated

获取一个值,该值指示是否验证了标识。

Label

获取或设置此声明标识的标签。

Name

获取此声明标识的名称。

NameClaimType

获取用于确定为此声明标识的 Name 属性提供值的声明的声明类型。

RoleClaimType

获取将解释为此声明标识中声明的 .NET 角色的声明类型。

方法

AddClaim(Claim)

添加单个声明到此声明标识。

AddClaims(IEnumerable<Claim>)

添加声明列表到此声明标识。

Clone()

返回从此声明标识中复制的新 ClaimsIdentity

CreateClaim(BinaryReader)

为派生类型提供扩展点以创建自定义 Claim

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
FindAll(Predicate<Claim>)

检索所有与指定谓词相匹配的声明。

FindAll(String)

检索所有有指定声明类型的声明。

FindFirst(Predicate<Claim>)

检所由指定谓词匹配的第一个声明。

FindFirst(String)

检索有指定声明类型的第一个声明。

GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetObjectData(SerializationInfo, StreamingContext)

用序列化当前SerializationInfo 对象所需的数据来填充 ClaimsIdentity

GetType()

获取当前实例的 Type

(继承自 Object)
HasClaim(Predicate<Claim>)

确定该声明标识是否拥有与指定条件相匹配的声明。

HasClaim(String, String)

确定该声明标识是否具备指定声明类型和值。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
RemoveClaim(Claim)

尝试从声明标识中移除一个声明。

ToString()

返回表示当前对象的字符串。

(继承自 Object)
TryRemoveClaim(Claim)

尝试从声明标识中移除一个声明。

WriteTo(BinaryWriter)

使用 BinaryWriter 序列化。

WriteTo(BinaryWriter, Byte[])

使用 BinaryWriter 序列化。

适用于

另请参阅