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 回應中寫入這些宣告。 目前使用者會從 HttpContext 讀取為 , ClaimsPrincipal 並從中讀取宣告。 宣告接著會寫入 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 中,您可以從 class.) 衍生來 SecurityTokenService 建置 STS。有時候,從簽發者收到的宣告集合可以透過直接儲存在資源上的主體屬性來擴充。 您可以評估宣告,以在授權過程中判斷資料和其他受保護資源的存取權,也可用來做出或表達有關主體的驗證決策。

從 .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屬性包含字串,可識別值的型別資訊。 這個屬性應該用來瞭解值的格式,並提供如何還原序列化它的相關資訊。 如果您的解決方案需要複雜的實值型別,建議您在 屬性中使用 ValueType 標準 XML 架構類型來指出 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 寫入此寫入器。

適用於

另請參閱