HOW TO:建立自訂宣告
Windows Communication Foundation (WCF) 中的身分識別模型基礎結構會提供一組具有 Helper 函式的內建宣告類型和權限,可讓您透過這些類型和權限建立 Claim 執行個體。這些內建宣告是專門用來模擬在 WCF 預設支援的用戶端認證類型中找到的資訊。在許多情況下,內建宣告就已足夠;不過有些應用程式可能需要自訂宣告。宣告中包含了宣告類型、宣告適用的資源,以及擁有該資源所需的權限。這個主題會描述如何建立自訂宣告。
依據基本資料型別建立自訂宣告
將宣告類型、資源值和權限傳遞至 Claim 建構函式,即可建立自訂宣告。
- 決定用於宣告類型的唯一值。
宣告類型為唯一的字串識別碼。自訂宣告設計者的責任在於確保用於宣告類型的字串識別碼為獨一無二的。如需 WCF 定義的宣告類型清單,請參閱 ClaimTypes 類別。 - 選擇基本資料型別和資源的值。
資源就是物件。資源的 CLR 類型可以為基本,例如 String 或 Int32,或任何可序列化的類型。因為 WCF 會在不同時間點序列化宣告,所以資源的 CLR 類型必須是可序列化的類型。基本類型為可序列化。 - 選擇 WCF 定義的權限,或者用於自訂權限的唯一值。
權限為唯一字串識別碼。WCF 所定義的權限會在 Rights 類別中加以定義。
自訂宣告設計者的責任在於確保用於權限的字串識別碼為獨一無二的。
下列程式碼範例會使用http://example.org/claims/simplecustomclaim
宣告類型,對名稱為Driver's License
的資源建立自訂宣告,也會使用 PossessProperty 權限建立自訂宣告。
- 決定用於宣告類型的唯一值。
依據非基本資料型別建立自訂宣告
將宣告類型、資源值和權限傳遞至 Claim 建構函式,即可建立自訂宣告。
- 決定用於宣告類型的唯一值。
宣告類型為唯一的字串識別碼。自訂宣告設計者的責任在於確保用於宣告類型的字串識別碼為獨一無二的。如需 WCF 定義的宣告類型清單,請參閱 ClaimTypes 類別。 - 選擇或定義資源的可序列化非基本類型。
資源就是物件。因為 WCF 會在不同時間點序列化宣告,所以資源的 CLR 類型必須是可序列化的類型。基本類型已為可序列化。
定義新類型時,請將 DataContractAttribute 套用至類別。也將 DataMemberAttribute 屬性套用至需要序列化以做為宣告一部分之新類型的所有成員。
下列程式碼範例會定義名稱為MyResourceType
的自訂資源類型。 - 選擇 WCF 定義的權限,或者用於自訂權限的唯一值。
權限為唯一字串識別碼。WCF 所定義的權限會在 Rights 類別中加以定義。
自訂宣告設計者的責任在於確保用於權限的字串識別碼為獨一無二的。
下列程式碼範例會使用http://example.org/claims/complexcustomclaim
的宣告類型、MyResourceType
的自訂資源類型和 PossessProperty 權限,建立自訂宣告。
- 決定用於宣告類型的唯一值。
範例
下列程式碼範例會示範如何使用基本資源類型和非基本資源類型建立自訂宣告。
請參閱
參考
Claim
Rights
ClaimTypes
DataContractAttribute
DataMemberAttribute