Procedura: creare un'attestazione personalizzata
L'infrastruttura del modello di identità in Windows Communication Foundation (WCF) fornisce una serie di tipi di attestazione e diritti incorporati, oltre alle funzioni di supporto per la creazione di istanze di Claim con tali tipi e diritti. Queste attestazioni incorporate sono progettate per modellare le informazioni presenti nei tipi di credenziali client supportati da WCF per impostazione predefinita. In molti casi, le attestazioni incorporate sono sufficienti; tuttavia alcune applicazioni possono richiedere attestazioni personalizzate. Un'attestazione è costituita dal tipo di attestazione, dalla risorsa a cui si applica l'attestazione e dal diritto asserito sulla risorsa in questione. In questo argomento viene descritto come creare un'attestazione personalizzata.
Per creare un'attestazione personalizzata basata su un tipo di dati primitivo
Creare un'attestazione personalizzata passando il tipo di attestazione, il valore della risorsa e il diritto al costruttore Claim.
- Stabilire un valore univoco per il tipo di attestazione.
Il tipo di attestazione è un identificatore di stringa univoco. È responsabilità di chi progetta l'attestazione personalizzata assicurare che l'identificatore di stringa utilizzato per il tipo di attestazione sia univoco. Per un elenco di tipi di attestazione definiti da WCF, vedere la classe ClaimTypes. - Scegliere il tipo di dati primitivo e il valore della risorsa.
Una risorsa è un oggetto. Il tipo CLR della risorsa può essere primitivo, ad esempio String o Int32 o qualsiasi tipo serializzabile. Il tipo CLR della risorsa deve essere serializzabile, poiché le attestazioni vengono serializzate in diversi punti da WCF. I tipi primitivi sono serializzabili. - Scegliere un diritto definito da WCF o un valore univoco per un diritto personalizzato.
Un diritto è un identificatore di stringa univoco. I diritti definiti da WCF vengono definiti nella classe Rights.
È responsabilità di chi progetta l'attestazione personalizzata assicurare che l'identificatore di stringa utilizzato per il diritto sia univoco.
Nell'esempio di codice seguente viene creata un'attestazione personalizzata con un tipo di attestazionehttp://example.org/claims/simplecustomclaim
, per una risorsa denominataDriver's License
, e con il diritto PossessProperty.
- Stabilire un valore univoco per il tipo di attestazione.
Per creare un'attestazione personalizzata basata su un tipo di dati non primitivo
Creare un'attestazione personalizzata passando il tipo di attestazione, il valore della risorsa e il diritto al costruttore Claim.
- Stabilire un valore univoco per il tipo di attestazione.
Il tipo di attestazione è un identificatore di stringa univoco. È responsabilità di chi progetta l'attestazione personalizzata assicurare che l'identificatore di stringa utilizzato per il tipo di attestazione sia univoco. Per un elenco di tipi di attestazione definiti da WCF, vedere la classe ClaimTypes. - Scegliere o definire un tipo non primitivo serializzabile per la risorsa.
Una risorsa è un oggetto. Il tipo CLR della risorsa deve essere serializzabile, poiché le attestazioni vengono serializzate in diversi punti da WCF. I tipi primitivi sono già serializzabili.
Quando viene definito un nuovo tipo, applicare DataContractAttribute alla classe. Applicare inoltre l'attributo DataMemberAttribute a tutti i membri del nuovo tipo che devono essere serializzati come parte dell'attestazione.
Nell'esempio di codice seguente viene definito un tipo di risorsa personalizzato denominatoMyResourceType
. - Scegliere un diritto definito da WCF o un valore univoco per un diritto personalizzato.
Un diritto è un identificatore di stringa univoco. I diritti definiti da WCF vengono definiti nella classe Rights.
È responsabilità di chi progetta l'attestazione personalizzata assicurare che l'identificatore di stringa utilizzato per il diritto sia univoco.
Nell'esempio di codice seguente viene creata un'attestazione personalizzata con un tipo di attestazionehttp://example.org/claims/complexcustomclaim
, per un tipo di risorse personalizzatoMyResourceType
, e con il diritto PossessProperty.
- Stabilire un valore univoco per il tipo di attestazione.
Esempio
Nell'esempio di codice seguente viene illustrato come creare un'attestazione personalizzata con un tipo di risorsa primitivo e un'attestazione personalizzata con un tipo di risorsa non primitivo.
Vedere anche
Riferimenti
Claim
Rights
ClaimTypes
DataContractAttribute
DataMemberAttribute
Concetti
Gestione di attestazioni e autorizzazioni con il modello di identità
Gestione di attestazioni e autorizzazioni con il modello di identità