Claim 类

定义

表示声明。

public ref class Claim
public class Claim
[System.Serializable]
public class Claim
type Claim = class
[<System.Serializable>]
type Claim = class
Public Class Claim
继承
Claim
属性

示例

以下示例提取与执行 HTTP 请求的经过身份验证的用户关联的声明,并将其写入 HTTP 响应中。 当前用户作为 HttpContextClaimsPrincipal 读取,并从中读取声明。 然后,声明将 HttpResponse 写入 对象。

ClaimsPrincipal principal = HttpContext.Current.User as ClaimsPrincipal;  
if (null != principal)  
{  
   foreach (Claim claim in principal.Claims)  
   {  
      Response.Write("CLAIM TYPE: " + claim.Type + "; CLAIM VALUE: " + claim.Value + "</br>");  
   }  

}  

注解

声明是颁发者关于使用者的语句。 声明表示在身份验证和授权操作上下文中有用的主题属性。 使用者和颁发者都是属于标识方案的一部分的实体。 主题的一些典型示例包括:用户、应用程序或服务、设备或计算机。 颁发者的一些典型示例包括:操作系统、应用程序、服务、角色提供程序、标识提供者或联合提供程序。 颁发者通过颁发安全令牌来传递声明,通常通过安全令牌服务 (STS) 。 (在 WIF 中,可以通过派生自 SecurityTokenService class.) 有时,从颁发者接收的声明集合可以通过直接存储在资源中的使用者属性进行扩展。 可以评估声明以确定在授权过程中对数据和其他受保护资源的访问权限,还可以用于做出或表达有关使用者的身份验证决策。

从 .NET 4.5 开始,Windows Identity Foundation (实现基于声明的标识的 WIF) 类已完全集成到.NET Framework中。 声明概念由 Claim 类实现。

下面介绍了 类的重要属性 Claim

  • 属性 Type 是一个字符串 (通常包含声明语义信息的 URI) ;它告知声明的值的含义。 例如,声明类型 GivenName 为 ("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname") 的声明表示用户的名字。 属性的值 Type 可以是 类中 ClaimTypes 定义的已知声明类型之一,也可以是颁发者定义的任意 URI。 例如,声明类型“urn:spendinglimit”可能表示在颁发者的业务上下文中有意义的用户属性。

  • 属性 Value 包含声明的值。 为了减少依赖项并简化管理,在 WIF 中,声明的值仅表示为字符串。 对于更复杂的值类型,建议使用标准 XML 架构类型来指示值应如何序列化为字符串并从字符串反序列化。

  • 属性 ValueType 包含一个字符串,用于标识值的类型信息。 此属性应用于了解值的格式,并提供有关如何反序列化它的信息。 如果解决方案需要复杂值类型,建议在 属性中使用标准 XML 架构类型 ValueType ,以指示如何将 Value 属性序列化为字符串并从字符串反序列化。

  • 属性 Subject 是一个 ClaimsIdentity 对象,表示声明的主题。 声明的主题是实体 (通常是请求访问声明的资源) 的用户。 在其 ClaimsIdentity 属性中,包含一组声明,用于描述由一个或多个颁发者证明的主题的属性和属性。

  • 属性 Issuer 包含发出声明的实体的名称。 声明的颁发者在 WIF 中由一个字符串表示,该字符串包含从由颁发者名称注册表维护的已知颁发者列表获取的名称。 颁发者名称注册表是从 类派生的类的 IssuerNameRegistry 实例。 颁发者名称注册表将助记符名称关联到验证相应颁发者生成的令牌签名所需的加密材料。 例如, ConfigurationBasedIssuerNameRegistry 在 .NET 4.5 中现成可用的 类将每个颁发者的助记名称与其相应的 X.509 证书相关联。 已知颁发者列表通常在启动时由颁发者名称注册表生成。 所使用的列表 ConfigurationBasedIssuerNameRegistry 在应用程序配置文件中指定。

  • 属性 OriginalIssuer 包含最初发出声明的实体的名称。 此属性旨在简化在客户端向 RP 应用程序呈现声明之前可能通过多个颁发者的情况;例如联合方案。 可以检查 OriginalIssuer 属性以确定最初发出声明的实体。 该名称取自由颁发者名称注册表维护的已知颁发者列表,如 属性的情况 Issuer 一样。

构造函数

Claim(BinaryReader)

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

Claim(BinaryReader, ClaimsIdentity)

用指定的读取器和使用者初始化 Claim 类的新实例。

Claim(Claim)

初始化 Claim 类的新实例。

Claim(Claim, ClaimsIdentity)

用指定的安全声明和使用者初始化 Claim 类的新实例。

Claim(String, String)

使用指定的声明类型和值初始化 Claim 类的新实例。

Claim(String, String, String)

使用指定的声明类型、值和值类型初始化 Claim 类的新实例。

Claim(String, String, String, String)

使用指定的声明类型、值、值类型和颁发者初始化 Claim 类的新实例。

Claim(String, String, String, String, String)

使用指定的声明类型、值、值类型、颁发者和原始颁发者初始化 类的新实例 Claim

Claim(String, String, String, String, String, ClaimsIdentity)

使用指定的声明类型、值、值类型、颁发者、原始颁发者和主题,初始化 Claim 类的新实例。

属性

CustomSerializationData

包含派生类型提供的任何其他数据。

Issuer

获取声明的颁发者。

OriginalIssuer

获取声明的最初颁发者。

Properties

获取包含与此声明关联的附加属性的字典。

Subject

获取声明的主题。

Type

获取声明的声明类型。

Value

获取声明的值。

ValueType

获取声明的值类型。

方法

Clone()

返回从此对象复制的新 Claim 对象。 新的声明不具有主题。

Clone(ClaimsIdentity)

返回从此对象复制的新 Claim 对象。 新声明的主题设置为指定的 ClaimsIdentity。

Equals(Object)

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

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回此 Claim 对象的字符串表示形式。

WriteTo(BinaryWriter)

将此 Claim 写入编写器。

WriteTo(BinaryWriter, Byte[])

将此 Claim 写入编写器。

适用于

另请参阅