ClaimsIdentity 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示基于声明的标识。
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 属性支持委派方案。
构造函数
字段
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 序列化。 |