Espressioni di criteri di Gestione APIAPI Management policy expressions

La sintassi delle espressioni di criteri è C# 6.0.Policy expressions syntax is C# 6.0. Ogni espressione ha accesso alla variabile context fornita implicitamente e a un subset autorizzato di tipi di .NET Framework.Each expression has access to the implicitly provided context variable and an allowed subset of .NET Framework types.

Suggerimento

Per ulteriori informazioni sulle espressioni di criteri, vedere il video Espressioni di criteri.For more information about policy expressions, see the Policy Expressions video.

Per una dimostrazione relativa alla configurazione dei criteri usando le espressioni, vedere l'episodio 177 di Cloud Cover su altre funzionalità di Gestione API con Vlad Vinogradsky.For demonstrations of configuring policies using policy expressions, see Cloud Cover Episode 177: More API Management Features with Vlad Vinogradsky. Il video include le seguenti dimostrazioni di espressioni di criteri.This video contains the following policy expression demonstrations.

  • 10:30: informazioni su come applicare criteri al livello dell'API per fornire informazioni di contesto al servizio back-end usando i criteri Imposta parametro di stringa della query e Imposta intestazione HTTP.10:30 - See how to apply policy at the API level to supply context information to the backend service using the Set query string parameter and Set HTTP header policies. A 12:10 minuti viene illustrata una dimostrazione su come chiamare un'operazione nel portale per sviluppatori, dove è possibile vedere all'opera i criteri stessi.At 12:10 there is a demo of calling an operation in the developer portal where you can see these policies at work.
    • 13:50: informazioni su come usare il criterio Convalida JWT per preautorizzare l'accesso alle operazioni in base alle attestazioni dei token.13:50 - See how to use the Validate JWT policy to pre-authorize access to operations based on token claims. Passare a 15:00 minuti per vedere i criteri configurati nell'editor dei criteri e quindi a 18:50 minuti per una dimostrazione della chiamata di un'operazione dal portale per sviluppatori, con e senza il token di autorizzazione richiesto.Fast forward to 15:00 to see the policies configured in the policy editor and then to 18:50 for a demonstration of calling an operation from the developer portal both with and without the required authorization token.
    • 21:00: informazioni su come usare una traccia di Controllo API per visualizzare il modo in cui i criteri vengono valutati e le valutazioni stesse. 21:00 - See how to use an API Inspector trace to see how policies are evaluated and the results of the evaluations.
    • 25:25: informazioni su come usare le espressioni di criteri con i criteri Recupera dalla cache e Archivia nella cache per configurare la durata della memorizzazione nella cache di Gestione API corrispondente alla memorizzazione delle risposte nella cache del serivzio back-end, come specificato dalla direttiva Cache-Control del servizio in questione.25:25 - See how to use policy expressions with the Get from cache and Store to cache policies to configure API Management response caching duration that matches the response caching of the backend service as specified by the backed service's Cache-Control directive.
    • 34:30: informazioni su come eseguire operazioni di filtro sui contenuti rimuovendo elementi dati dalla risposta ricevuta dal servizio back-end usando i criteri Flusso di controllo e Imposta corpo.34:30 - See how to perform content filtering by removing data elements from the response received from the backend service using the Control flow and Set body policies. Andare al minuto 31:50 per visualizzare una panoramica di The Dark Sky Forecast API, l'API usata in questa dimostrazione.Start at 31:50 to see an overview of The Dark Sky Forecast API used for this demo.
    • Le istruzioni dei criteri usate in questo video sono disponibili nel repository di github api-management-samples/policies.To download the policy statements used in this video, see the api-management-samples/policies github repo.

SintassiSyntax

Le espressioni a istruzione singola sono racchiuse tra @(expression), dove expression è un'istruzione di espressione C# ben formata.Single statement expressions are enclosed in @(expression), where expression is a well-formed C# expression statement.

Le espressioni a più istruzioni sono racchiuse tra @{expression}.Multi-statement expressions are enclosed in @{expression}. Tutti i percorsi di codice all'interno di espressioni a più istruzioni devono terminare con un'istruzione return.All code paths within multi-statement expressions must end with a return statement.

EsempiExamples

@(true)  

@((1+1).ToString())  

@("Hi There".Length)  

@(Regex.Match(context.Response.Headers.GetValueOrDefault("Cache-Control",""), @"max-age=(?<maxAge>\d+)").Groups["maxAge"]?.Value)  

@(context.Variables.ContainsKey("maxAge") ? int.Parse((string)context.Variables["maxAge"]) : 3600)  

@{   
  string value;   
  if (context.Request.Headers.TryGetValue("Authorization", out value))   
  {   
    return Encoding.UTF8.GetString(Convert.FromBase64String(value));  
  }   
  else   
  {   
    return null;  
  }  
}  

UsoUsage

Le espressioni possono essere usate come valori di attributo o valori di testo in uno qualsiasi dei criteri di Gestione API, salvo diversamente specificato dai criteri.Expressions can be used as attribute values or text values in any of the API Management policies, unless the policy reference specifies otherwise.

Importante

Si noti che quando si usano espressioni di criteri, è prevista solo una verifica limitata di tali espressioni quando i criteri vengono definiti.Note that when you use policy expressions, there is only limited verification of the policy expressions when the policy is defined. Poiché le espressioni vengono eseguite dal gateway al momento del runtime nella pipeline in entrata o in uscita, eventuali eccezioni di runtime generate dalle espressioni di criteri porteranno a un errore di runtime nella chiamata dell'API.Since the expressions are executed at run-time in the inbound or outbound pipeline by the gateway, any run-time exceptions generated by the policy expressions will result in a runtime error in the API call.

Tipi di .NET Framework consentiti nelle espressioni di criteri.NET Framework types allowed in policy expressions

Nella tabella seguente sono elencati i tipi di .NET Framework e i relativi membri consentiti nelle espressioni di criteri.The following table lists the .NET Framework types and their members that are allowed in policy expressions.

Tipo CLRCLR type Metodi supportatiSupported methods
Newtonsoft.Json.Linq.ExtensionsNewtonsoft.Json.Linq.Extensions Tutti i metodi sono supportatiAll methods are supported
Newtonsoft.Json.Linq.JArrayNewtonsoft.Json.Linq.JArray Tutti i metodi sono supportatiAll methods are supported
Newtonsoft.Json.Linq.JConstructorNewtonsoft.Json.Linq.JConstructor Tutti i metodi sono supportatiAll methods are supported
Newtonsoft.Json.Linq.JContainerNewtonsoft.Json.Linq.JContainer Tutti i metodi sono supportatiAll methods are supported
Newtonsoft.Json.Linq.JObjectNewtonsoft.Json.Linq.JObject Tutti i metodi sono supportatiAll methods are supported
Newtonsoft.Json.Linq.JPropertyNewtonsoft.Json.Linq.JProperty Tutti i metodi sono supportatiAll methods are supported
Newtonsoft.Json.Linq.JRawNewtonsoft.Json.Linq.JRaw Tutti i metodi sono supportatiAll methods are supported
Newtonsoft.Json.Linq.JTokenNewtonsoft.Json.Linq.JToken Tutti i metodi sono supportatiAll methods are supported
Newtonsoft.Json.Linq.JTokenTypeNewtonsoft.Json.Linq.JTokenType Tutti i metodi sono supportatiAll methods are supported
Newtonsoft.Json.Linq.JValueNewtonsoft.Json.Linq.JValue Tutti i metodi sono supportatiAll methods are supported
System.Collections.Generic.IReadOnlyCollection<T>System.Collections.Generic.IReadOnlyCollection<T> TuttiAll
System.Collections.Generic.IReadOnlyDictionary<TKey, TValue>System.Collections.Generic.IReadOnlyDictionary<TKey, TValue> TuttiAll
System.Collections.Generic.ISet<TKey, TValue>System.Collections.Generic.ISet<TKey, TValue> TuttiAll
System.Collections.Generic.KeyValuePair<TKey, TValue>System.Collections.Generic.KeyValuePair<TKey, TValue> Chiave, valoreKey, Value
System.Collections.Generic.List<TKey, TValue>System.Collections.Generic.List<TKey, TValue> TuttiAll
System.Collections.Generic.Queue<TKey, TValue>System.Collections.Generic.Queue<TKey, TValue> TuttiAll
System.Collections.Generic.Stack<TKey, TValue>System.Collections.Generic.Stack<TKey, TValue> TuttiAll
System.ConvertSystem.Convert TuttiAll
System.DateTimeSystem.DateTime TuttiAll
System.DateTimeKindSystem.DateTimeKind UTCUtc
System.DateTimeOffsetSystem.DateTimeOffset TuttiAll
System.DecimalSystem.Decimal TuttiAll
System.DoubleSystem.Double TuttiAll
System.GuidSystem.Guid TuttiAll
System.IEnumerable<T>System.IEnumerable<T> TuttiAll
System.IEnumerator<T>System.IEnumerator<T> TuttiAll
System.Int16System.Int16 TuttiAll
System.Int32System.Int32 TuttiAll
System.Int64System.Int64 TuttiAll
System.Linq.Enumerable<T>System.Linq.Enumerable<T> Tutti i metodi sono supportatiAll methods are supported
System.MathSystem.Math TuttiAll
System.MidpointRoundingSystem.MidpointRounding TuttiAll
System.Nullable<T>System.Nullable<T> TuttiAll
System.RandomSystem.Random TuttiAll
System.SByteSystem.SByte TuttiAll
System.Security.Cryptography.System.Security.Cryptography. HMACSHA384HMACSHA384 TuttiAll
System.Security.Cryptography.System.Security.Cryptography. HMACSHA512HMACSHA512 TuttiAll
System.Security.Cryptography.HashAlgorithmSystem.Security.Cryptography.HashAlgorithm TuttiAll
System.Security.Cryptography.HMACSystem.Security.Cryptography.HMAC TuttiAll
System.Security.Cryptography.HMACMD5System.Security.Cryptography.HMACMD5 TuttiAll
System.Security.Cryptography.HMACSHA1System.Security.Cryptography.HMACSHA1 TuttiAll
System.Security.Cryptography.HMACSHA256System.Security.Cryptography.HMACSHA256 TuttiAll
System.Security.Cryptography.KeyedHashAlgorithmSystem.Security.Cryptography.KeyedHashAlgorithm TuttiAll
System.Security.Cryptography.MD5System.Security.Cryptography.MD5 TuttiAll
System.Security.Cryptography.RNGCryptoServiceProviderSystem.Security.Cryptography.RNGCryptoServiceProvider TuttiAll
System.Security.Cryptography.SHA1System.Security.Cryptography.SHA1 TuttiAll
System.Security.Cryptography.SHA1ManagedSystem.Security.Cryptography.SHA1Managed TuttiAll
System.Security.Cryptography.SHA256System.Security.Cryptography.SHA256 TuttiAll
System.Security.Cryptography.SHA256ManagedSystem.Security.Cryptography.SHA256Managed TuttiAll
System.Security.Cryptography.SHA384System.Security.Cryptography.SHA384 TuttiAll
System.Security.Cryptography.SHA384ManagedSystem.Security.Cryptography.SHA384Managed TuttiAll
System.Security.Cryptography.SHA512System.Security.Cryptography.SHA512 TuttiAll
System.Security.Cryptography.SHA512ManagedSystem.Security.Cryptography.SHA512Managed TuttiAll
System.SingleSystem.Single TuttiAll
System.StringSystem.String TuttiAll
System.StringSplitOptionsSystem.StringSplitOptions TuttiAll
System.Text.EncodingSystem.Text.Encoding TuttiAll
System.Text.RegularExpressions.CaptureSystem.Text.RegularExpressions.Capture Indice, lunghezza, valoreIndex, Length, Value
System.Text.RegularExpressions.CaptureCollectionSystem.Text.RegularExpressions.CaptureCollection Conteggio, elementoCount, Item
System.Text.RegularExpressions.GroupSystem.Text.RegularExpressions.Group Acquisizioni, esito positivoCaptures, Success
System.Text.RegularExpressions.GroupCollectionSystem.Text.RegularExpressions.GroupCollection Conteggio, elementoCount, Item
System.Text.RegularExpressions.MatchSystem.Text.RegularExpressions.Match Empty, Groups, ResultEmpty, Groups, Result
System.Text.RegularExpressions.RegexSystem.Text.RegularExpressions.Regex .ctor, IsMatch, Match, Matches, Replace.ctor, IsMatch, Match, Matches, Replace
System.Text.RegularExpressions.RegexOptionsSystem.Text.RegularExpressions.RegexOptions Compiled, IgnoreCase, IgnorePatternWhitespace, Multiline, None, RightToLeft, SinglelineCompiled, IgnoreCase, IgnorePatternWhitespace, Multiline, None, RightToLeft, Singleline
System.TimeSpanSystem.TimeSpan TuttiAll
System.TupleSystem.Tuple TuttiAll
System.UInt16System.UInt16 TuttiAll
System.UInt32System.UInt32 TuttiAll
System.UInt64System.UInt64 TuttiAll
System.UriSystem.Uri TuttiAll
System.Xml.Linq.ExtensionsSystem.Xml.Linq.Extensions Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XAttributeSystem.Xml.Linq.XAttribute Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XCDataSystem.Xml.Linq.XCData Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XCommentSystem.Xml.Linq.XComment Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XContainerSystem.Xml.Linq.XContainer Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XDeclarationSystem.Xml.Linq.XDeclaration Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XDocumentSystem.Xml.Linq.XDocument Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XDocumentTypeSystem.Xml.Linq.XDocumentType Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XElementSystem.Xml.Linq.XElement Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XNameSystem.Xml.Linq.XName Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XNamespaceSystem.Xml.Linq.XNamespace Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XNodeSystem.Xml.Linq.XNode Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XNodeDocumentOrderComparerSystem.Xml.Linq.XNodeDocumentOrderComparer Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XNodeEqualityComparerSystem.Xml.Linq.XNodeEqualityComparer Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XObjectSystem.Xml.Linq.XObject Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XProcessingInstructionSystem.Xml.Linq.XProcessingInstruction Tutti i metodi sono supportatiAll methods are supported
System.Xml.Linq.XTextSystem.Xml.Linq.XText Tutti i metodi sono supportatiAll methods are supported
System.Xml.XmlNodeTypeSystem.Xml.XmlNodeType TuttiAll

Variabile di contestoContext variable

Una variabile denominata context è disponibile in modo implicito in ogni espressione di criteri.A variable named context is implicitly available in every policy expression. I suoi membri forniscono informazioni riguardanti \request.Its members provide information pertinent to the \request. Tutti i membri di context sono di sola lettura.All of the context members are read-only.

Variabile di contestoContext Variable Metodi, proprietà e valori di parametro consentitiAllowed methods, properties, and parameter values
contextcontext Api: IApiApi: IApi

DistribuzioneDeployment

LastErrorLastError

OperazioneOperation

ProdottoProduct

RichiestaRequest

RequestId: GuidRequestId: Guid

ResponseResponse

SottoscrizioneSubscription

Tracing: boolTracing: bool

UtenteUser

Variables:IReadOnlyDictionary<string, object>Variables:IReadOnlyDictionary<string, object>

void Trace(message: string)void Trace(message: string)
context.Apicontext.Api Id: stringId: string

Name: stringName: string

Path: stringPath: string

ServiceUrl: IUrlServiceUrl: IUrl
context.Deploymentcontext.Deployment Region: stringRegion: string

ServiceName: stringServiceName: string

Certificati: IReadOnlyDictionary<string, X509Certificate2>Certificates: IReadOnlyDictionary<string, X509Certificate2>
context.LastErrorcontext.LastError Source: stringSource: string

Reason: stringReason: string

Message: stringMessage: string

Scope: stringScope: string

Section: stringSection: string

Path: stringPath: string

PolicyId: stringPolicyId: string

Per ulteriori informazioni su context.LastError, vedere Gestione degli errori.For more information about context.LastError, see Error handling.
context.Operationcontext.Operation Id: stringId: string

Method: stringMethod: string

Name: stringName: string

UrlTemplate: stringUrlTemplate: string
context.Productcontext.Product Apis: IEnumerable<IApi>Apis: IEnumerable<IApi>

ApprovalRequired: boolApprovalRequired: bool

Groups: IEnumerable<IGroup>Groups: IEnumerable<IGroup>

Id: stringId: string

Name: stringName: string

State: enum ProductState {NotPublished, Published}State: enum ProductState {NotPublished, Published}

SubscriptionLimit: int?SubscriptionLimit: int?

SubscriptionRequired: boolSubscriptionRequired: bool
context.Requestcontext.Request Body: IMessageBodyBody: IMessageBody

Certificate: System.Security.Cryptography.X509Certificates.X509Certificate2Certificate: System.Security.Cryptography.X509Certificates.X509Certificate2

Headers: IReadOnlyDictionary<string, string[]>Headers: IReadOnlyDictionary<string, string[]>

IpAddress: stringIpAddress: string

MatchedParameters: IReadOnlyDictionary<string, string>MatchedParameters: IReadOnlyDictionary<string, string>

Method: stringMethod: string

OriginalUrl:IUrlOriginalUrl:IUrl

Url: IUrlUrl: IUrl
string context.Request.Headers.GetValueOrDefault(headerName: string, defaultValue: string)string context.Request.Headers.GetValueOrDefault(headerName: string, defaultValue: string) headerName: stringheaderName: string

defaultValue: stringdefaultValue: string

Restituisce valori di intestazione di richiesta separati da virgole oppure defaultValue se non viene trovata l'intestazione.Returns comma separated request header values or defaultValue if the header is not found.
context.Responsecontext.Response Body: IMessageBodyBody: IMessageBody

Headers: IReadOnlyDictionary<string, string[]>Headers: IReadOnlyDictionary<string, string[]>

StatusCode: intStatusCode: int

StatusReason: stringStatusReason: string
string context.Response.Headers.GetValueOrDefault(headerName: string, defaultValue: string)string context.Response.Headers.GetValueOrDefault(headerName: string, defaultValue: string) headerName: stringheaderName: string

defaultValue: stringdefaultValue: string

Restituisce valori di intestazione di risposta separati da virgole oppure defaultValue se non viene trovata l'intestazione.Returns comma separated response header values or defaultValue if the header is not found.
context.Subscriptioncontext.Subscription CreatedTime: DateTimeCreatedTime: DateTime

EndDate: DateTime?EndDate: DateTime?

Id: stringId: string

Key: stringKey: string

Name: stringName: string

PrimaryKey: stringPrimaryKey: string

SecondaryKey: stringSecondaryKey: string

StartDate: DateTime?StartDate: DateTime?
context.Usercontext.User Email: stringEmail: string

FirstName: stringFirstName: string

Groups: IEnumerable<IGroup>Groups: IEnumerable<IGroup>

Id: stringId: string

Identities: IEnumerable<IUserIdentity>Identities: IEnumerable<IUserIdentity>

LastName: stringLastName: string

Note: stringNote: string

RegistrationDate: DateTimeRegistrationDate: DateTime
IApiIApi Id: stringId: string

Name: stringName: string

Path: stringPath: string

Protocols: IEnumerable<string>Protocols: IEnumerable<string>

ServiceUrl: IUrlServiceUrl: IUrl

SubscriptionKeyParameterNames: ISubscriptionKeyParameterNamesSubscriptionKeyParameterNames: ISubscriptionKeyParameterNames
IGroupIGroup Id: stringId: string

Name: stringName: string
IMessageBodyIMessageBody As<T>(preserveContent: bool = false): Where T: string, JObject, JToken, JArray, XNode, XElement, XDocumentAs<T>(preserveContent: bool = false): Where T: string, JObject, JToken, JArray, XNode, XElement, XDocument

I metodi context.Request.Body.As<T> e context.Response.Body.As<T> vengono usati per leggere il corpo dei messaggi di richiesta e di risposta in un tipo T specificato.The context.Request.Body.As<T> and context.Response.Body.As<T> methods are used to read a request and response message bodies in a specified type T. Per impostazione predefinita, il metodo usa il flusso del corpo del messaggio originale e lo rende non disponibile dopo aver restituito un valore.By default the method uses the original message body stream and reneders it unavailable after it returns. Per evitarlo, far sì che il metodo venga eseguito su una copia del flusso del corpo impostando il parametro preserveContent su true.To avoid that by having the method operate on a copy of the body stream, set the preserveContent parameter to true. Per un esempio, vedere qui.Go here to see an example.
IUrlIUrl Host: stringHost: string

Path: stringPath: string

Port: intPort: int

Query: IReadOnlyDictionary<string, string[]>Query: IReadOnlyDictionary<string, string[]>

QueryString: stringQueryString: string

Scheme: stringScheme: string
IUserIdentityIUserIdentity Id: stringId: string

Provider: stringProvider: string
ISubscriptionKeyParameterNamesISubscriptionKeyParameterNames Header: stringHeader: string

Query: stringQuery: string
string IUrl.Query.GetValueOrDefault(queryParameterName: string, defaultValue: string)string IUrl.Query.GetValueOrDefault(queryParameterName: string, defaultValue: string) queryParameterName: stringqueryParameterName: string

defaultValue: stringdefaultValue: string

Restituisce valori di parametro separati da virgole oppure defaultValue se il parametro non viene trovato.Returns comma separated query parameter values or defaultValue if the parameter is not found.
T context.Variables.GetValueOrDefault<T>(variableName: string, defaultValue: T)T context.Variables.GetValueOrDefault<T>(variableName: string, defaultValue: T) variableName: stringvariableName: string

defaultValue: TdefaultValue: T

Restituisce il valore della variabile nel tipo T oppure defaultValue se la variabile non viene trovata.Returns variable value cast to type T or defaultValue if the variable is not found.

Questo metodo genera un'eccezione se il tipo specificato non corrisponde al tipo effettivo della variabile restituita.This method throws an exception if the specified type does not match the actual type of the returned variable.
BasicAuthCredentials AsBasic(input: this string)BasicAuthCredentials AsBasic(input: this string) input: stringinput: string

Se il parametro di input contiene un valore di intestazione di richiesta di autorizzazione Autenticazione HTTP di base valido, il metodo restituisce un oggetto di tipo BasicAuthCredentials; in caso contrario restituisce un valore null.If the input parameter contains a valid HTTP Basic Authentication authorization request header value, the method returns an object of type BasicAuthCredentials; otherwise the method returns null.
bool TryParseBasic(input: this string, result: out BasicAuthCredentials)bool TryParseBasic(input: this string, result: out BasicAuthCredentials) input: stringinput: string

result: out BasicAuthCredentialsresult: out BasicAuthCredentials

Se il parametro di input contiene un valore di intestazione di richiesta di autorizzazione Autenticazione HTTP di base valido, il metodo restituisce un oggetto di tipo true e il parametro risultante contiene un valore di tipo BasicAuthCredentials; in caso contrario restituisce false.If the input parameter contains a valid HTTP Basic Authentication authorization request header value, the method returns true and the result parameter contains a value of type BasicAuthCredentials; otherwise the method returns false.
BasicAuthCredentialsBasicAuthCredentials Password: stringPassword: string

UserId: stringUserId: string
Jwt AsJwt(input: this string)Jwt AsJwt(input: this string) input: stringinput: string

Se il parametro di input contiene un valore di token JWT valido, il metodo restituisce un oggetto di tipo Jwt; in caso contrario restituisce null.If the input parameter contains a valid JWT token value, the method returns an object of type Jwt; otherwise the method returns null.
bool TryParseJwt(input: this string, result: out Jwt)bool TryParseJwt(input: this string, result: out Jwt) input: stringinput: string

result: out Jwtresult: out Jwt

Se il parametro di input contiene un valore di token JWT valido, il metodo restituisce true e il parametro del risultato contiene un valore di tipo Jwt; in caso contrario il metodo restituisce false.If the input parameter contains a valid JWT token value, the method returns true and the result parameter contains a value of type Jwt; otherwise the method returns false.
JwtJwt Algorithm: stringAlgorithm: string

Audience: IEnumerable<string>Audience: IEnumerable<string>

Claims: IReadOnlyDictionary<string, string[]>Claims: IReadOnlyDictionary<string, string[]>

ExpirationTime: DateTime?ExpirationTime: DateTime?

Id: stringId: string

Issuer: stringIssuer: string

NotBefore: DateTime?NotBefore: DateTime?

Subject: stringSubject: string

Type: stringType: string
string Jwt.Claims.GetValueOrDefault(claimName: string, defaultValue: string)string Jwt.Claims.GetValueOrDefault(claimName: string, defaultValue: string) claimName: stringclaimName: string

defaultValue: stringdefaultValue: string

Restituisce valori di attestazione separati da virgole oppure defaultValue se non viene trovata l'intestazione.Returns comma separated claim values or defaultValue if the header is not found.
byte[] Encrypt(input: this byte[], alg: string, key:byte[], iv:byte[])byte[] Encrypt(input: this byte[], alg: string, key:byte[], iv:byte[]) input - testo non crittografato da crittografareinput - plaintext to be encrypted

alg - nome di un algoritmo di crittografia simmetricaalg - name of a symmetric encryption algorithm

key - chiave di crittografiakey - encryption key

iv - vettore di inizializzazioneiv - initialization vector

Restituisce testo normale crittografato.Returns encrypted plaintext.
byte[] Encrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm)byte[] Encrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm) input - testo non crittografato da crittografareinput - plaintext to be encrypted

alg - algoritmo di crittografiaalg - encryption algorithm

Restituisce testo normale crittografato.Returns encrypted plaintext.
byte[] Encrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm, key:byte[], iv:byte[])byte[] Encrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm, key:byte[], iv:byte[]) input - testo non crittografato da crittografareinput - plaintext to be encrypted

alg - algoritmo di crittografiaalg - encryption algorithm

key - chiave di crittografiakey - encryption key

iv - vettore di inizializzazioneiv - initialization vector

Restituisce testo normale crittografato.Returns encrypted plaintext.
byte[] Decrypt(input: this byte[], alg: string, key:byte[], iv:byte[])byte[] Decrypt(input: this byte[], alg: string, key:byte[], iv:byte[]) input - messaggio cifrato da decrittografareinput - cyphertext to be decrypted

alg - nome di un algoritmo di crittografia simmetricaalg - name of a symmetric encryption algorithm

key - chiave di crittografiakey - encryption key

iv - vettore di inizializzazioneiv - initialization vector

Restituisce testo normale non crittografato.Returns plaintext.
byte[] Encrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm, key:byte[], iv:byte[])byte[] Decrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm) input - messaggio cifrato da decrittografareinput - cyphertext to be decrypted

alg - algoritmo di crittografiaalg - encryption algorithm

Restituisce testo normale non crittografato.Returns plaintext.
byte[] Encrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm, key:byte[], iv:byte[])byte[] Decrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm, key:byte[], iv:byte[]) input - input - messaggio cifrato da decrittografareinput - input - cyphertext to be decrypted

alg - algoritmo di crittografiaalg - encryption algorithm

key - chiave di crittografiakey - encryption key

iv - vettore di inizializzazioneiv - initialization vector

Restituisce testo normale non crittografato.Returns plaintext.

VideoVideo

Per altre informazioni sull'uso di questi criteri, vedere:For more information working with policies, see: