Claim 类

定义

表示与某个实体关联的声明。

public ref class Claim
[System.Runtime.Serialization.DataContract(Namespace="http://schemas.xmlsoap.org/ws/2005/05/identity")]
public class Claim
[<System.Runtime.Serialization.DataContract(Namespace="http://schemas.xmlsoap.org/ws/2005/05/identity")>]
type Claim = class
Public Class Claim
继承
Claim
属性

示例

// Run this method from within a method protected by the PrincipalPermissionAttribute
// to see the security context data, including the primary identity.
public void WriteServiceSecurityContextData(string fileName)
{
    using (StreamWriter sw = new StreamWriter(fileName))
    {
        // Write the primary identity and Windows identity. The primary identity is derived from the
        // the credentials used to authenticate the user. The Windows identity may be a null string.
        sw.WriteLine("PrimaryIdentity: {0}", ServiceSecurityContext.Current.PrimaryIdentity.Name);
        sw.WriteLine("WindowsIdentity: {0}", ServiceSecurityContext.Current.WindowsIdentity.Name);
        sw.WriteLine();
        // Write the claimsets in the authorization context. By default, there is only one claimset
        // provided by the system.
        foreach (ClaimSet claimset in ServiceSecurityContext.Current.AuthorizationContext.ClaimSets)
        {
            foreach (Claim claim in claimset)
            {
                // Write out each claim type, claim value, and the right. There are two
                // possible values for the right: "identity" and "possessproperty".
                sw.WriteLine("Claim Type = {0}", claim.ClaimType);
                sw.WriteLine("\t Resource = {0}", claim.Resource.ToString());
                sw.WriteLine("\t Right = {0}", claim.Right);
            }
        }
    }
}
' Run this method from within a method protected by the PrincipalPermissionAttribute
' to see the security context data, including the primary identity.
Public Sub WriteServiceSecurityContextData(ByVal fileName As String)
    Dim sw As New StreamWriter(fileName)
    Try
        ' Write the primary identity and Windows identity. The primary identity is derived from the
        ' the credentials used to authenticate the user. The Windows identity may be a null string.
        sw.WriteLine("PrimaryIdentity: {0}", ServiceSecurityContext.Current.PrimaryIdentity.Name)
        sw.WriteLine("WindowsIdentity: {0}", ServiceSecurityContext.Current.WindowsIdentity.Name)
        sw.WriteLine()
        ' Write the claimsets in the authorization context. By default, there is only one claimset
        ' provided by the system. 
        Dim claimset As ClaimSet
        For Each claimset In ServiceSecurityContext.Current.AuthorizationContext.ClaimSets
            Dim claim As Claim
            For Each claim In claimset
                ' Write out each claim type, claim value, and the right. There are two
                ' possible values for the right: "identity" and "possessproperty". 
                sw.WriteLine("Claim Type = {0}", claim.ClaimType)
                sw.WriteLine(vbTab + " Resource = {0}", claim.Resource.ToString())
                sw.WriteLine(vbTab + " Right = {0}", claim.Right)
            Next claim
        Next claimset
    Finally
        sw.Dispose()
    End Try

End Sub

注解

标识模型是一个基于声明的授权系统。 声明描述与系统中某个实体关联的功能,该实体通常为该系统中的某个用户。 与给定实体关联的声明集可视为密钥。 特定声明定义了该密钥的构成形式,这与现实中用于打开门锁的钥匙非常相似。 这样,便可使用声明来获取访问资源的权限。 通过对访问给定的受保护资源所需的声明和与试图进行访问的实体关联的声明进行比较,便可确定该资源的访问权限。

声明是针对特定值的权限表达式。 权限可以是读取、写入或拥有。 值可以是数据库、文件、邮箱或属性。 声明还具有声明类型。 声明类型和权限的组合提供了用于针对该值指定的功能的机制。 例如,类型的file声明在 值biography.doc上具有右侧read,指示具有此类声明的实体对文件 biography.doc 具有读取访问权限。类型为名称且值Martin上具有右侧PossessProperty的声明指示具有 声明的实体拥有Name值为 Martin的属性。

尽管将各种不同的声明类型和权限定义为标识模型的一部分,但仍可以对系统进行扩展。 在标识模型基础结构上面构建的各种系统可以根据需要定义声明类型和权限。

构造函数

Claim(String, Object, String)

使用指定的类型、资源和权限初始化 Claim 类的新实例。

属性

ClaimType

获取声明的类型。

DefaultComparer

获取一个对象,它可以比较两个 Claim 对象是否相等。

Resource

获取与此 Claim 对象关联的资源。

Right

指定与此 Claim 对象关联的权限的统一资源标识符 (URI) 的字符串表示形式。 预定义权限是以 Rights 类的静态属性的形式提供的。

System

表示系统实体的预定义声明。

方法

CreateDenyOnlyWindowsSidClaim(SecurityIdentifier)

创建一个表示指定的 deny-only 安全标识符 (SID) 的 Claim 对象。

CreateDnsClaim(String)

创建一个表示指定域名系统 (DNS) 名称的 Claim 对象。

CreateHashClaim(Byte[])

创建一个表示指定哈希值的 Claim 对象。

CreateMailAddressClaim(MailAddress)

创建一个表示指定电子邮件地址的 Claim 对象。

CreateNameClaim(String)

创建一个表示指定名称的 Claim 对象。

CreateRsaClaim(RSA)

创建一个表示指定 RSA 密钥的 Claim 对象。

CreateSpnClaim(String)

创建一个表示指定服务主要名称 (SPN) 的 Claim 对象。

CreateThumbprintClaim(Byte[])

创建一个表示指定指纹的 Claim 对象。

CreateUpnClaim(String)

创建一个表示指定通用主要名称 (UPN) 的 Claim 对象。

CreateUriClaim(Uri)

创建一个表示指定统一资源定位符 (URL) 的 Claim 对象。

CreateWindowsSidClaim(SecurityIdentifier)

创建一个表示指定安全标识符 (SID) 的 Claim 对象。

CreateX500DistinguishedNameClaim(X500DistinguishedName)

创建一个表示指定 X.500 可分辨名称的 Claim 对象。

Equals(Object)

确定指定对象是否表示与当前 Claim 对象相同的声明。

GetHashCode()

返回当前声明的哈希代码。

GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

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

适用于