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 方法所提供。 NameClaimType和 RoleClaimType 屬性可讓您指定宣告類型,以在執行這些作業時,用來評估身分識別所包含的宣告。
委派案例可透過 Actor 和 BootstrapContext 屬性來支援。
建構函式
欄位
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 序列化。 |