Expressions de stratégie de la Gestion des APIAPI Management policy expressions

Cet article décrit la syntaxe des expressions de stratégie de C# 7.This article discusses policy expressions syntax is C# 7. Chaque expression a accès à la variable de contexte fournie implicitement et à un sous-ensemble autorisé de types .NET Framework.Each expression has access to the implicitly provided context variable and an allowed subset of .NET Framework types.

Pour plus d'informations :For more information:

  • Découvrez comment fournir des informations de contexte à votre service backend.See how to supply context information to your backend service. Utilisez les stratégies Set query string parameter et Set HTTP header pour fournir ces informations.Use the Set query string parameter and Set HTTP header policies to supply this information.
  • Découvrez comment utiliser la stratégie Validate JWT pour pré-autoriser l’accès aux opérations à partir de revendications de jetons.See how to use the Validate JWT policy to pre-authorize access to operations based on token claims.
  • Découvrez comment utiliser une trace Inspecteur d’API pour voir comment les stratégies sont évaluées et connaître les résultats des évaluations.See how to use an API Inspector trace to see how policies are evaluated and the results of those evaluations.
  • Découvrez comment utiliser les expressions avec les stratégies Get from cache et Store to cache pour configurer la durée de mise en cache des réponses de Gestion des API.See how to use expressions with the Get from cache and Store to cache policies to configure API Management response caching. Définissez une durée qui correspond à la mise en cache des réponses du service principal comme le spécifie la directive Cache-Control du service principal.Set a duration that matches the response caching of the backend service as specified by the backed service's Cache-Control directive.
  • Découvrez comment effectuer le filtrage de contenu.See how to perform content filtering. Supprimez des éléments de données de la réponse reçue du service principal à l’aide des stratégies Control flow et Set body.Remove data elements from the response received from the backend using the Control flow and Set body policies.
  • Pour télécharger les instructions de stratégie, consultez le référentiel GitHub api-management-samples/policies.To download the policy statements, see the api-management-samples/policies GitHub repo.

SyntaxeSyntax

Les expressions à instruction unique sont entre @(expression), où expression est une instruction d’expression C# bien formée.Single statement expressions are enclosed in @(expression), where expression is a well-formed C# expression statement.

Les expressions à instructions multiples sont entre @{expression}.Multi-statement expressions are enclosed in @{expression}. Tous les chemins d’accès de code au sein des expressions à instructions multiples doivent se terminer par une instruction return.All code paths within multi-statement expressions must end with a return statement.

ExemplesExamples

@(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))
  {
      if(value != null && value.Length > 0)
      {
          return Encoding.UTF8.GetString(Convert.FromBase64String(value[0]));
      }
  }
  return null;

}

UtilisationUsage

Les expressions peuvent être utilisées comme valeurs d’attribut ou valeurs de texte dans l’une des stratégies de la Gestion des API, sauf si la référence de la stratégie le spécifie autrement.Expressions can be used as attribute values or text values in any API Management policies (unless the policy reference specifies otherwise).

Important

Lorsque vous utilisez des expressions de stratégie, elles ne font l’objet que d’une vérification limitée lors de la définition de la stratégie.When you use policy expressions, there is only limited verification of the policy expressions when the policy is defined. Les expressions sont exécutées par la passerelle lors de l’exécution, et toutes les exceptions générées par les expressions de stratégie entraînent une erreur d’exécution.Expressions are executed by the gateway at run-time, any exceptions generated by policy expressions result in a runtime error.

Types .NET Framework autorisés dans les expressions de stratégie.NET Framework types allowed in policy expressions

Le tableau suivant liste les types .NET Framework et leurs membres qui sont autorisés dans les expressions de stratégie.The following table lists the .NET Framework types and their members that are allowed in policy expressions.

TypeType Membres pris en chargeSupported members
Newtonsoft.Json.FormattingNewtonsoft.Json.Formatting TousAll
Newtonsoft.Json.JsonConvertNewtonsoft.Json.JsonConvert SerializeObject, DeserializeObjectSerializeObject, DeserializeObject
Newtonsoft.Json.Linq.ExtensionsNewtonsoft.Json.Linq.Extensions TousAll
Newtonsoft.Json.Linq.JArrayNewtonsoft.Json.Linq.JArray TousAll
Newtonsoft.Json.Linq.JConstructorNewtonsoft.Json.Linq.JConstructor TousAll
Newtonsoft.Json.Linq.JContainerNewtonsoft.Json.Linq.JContainer TousAll
Newtonsoft.Json.Linq.JObjectNewtonsoft.Json.Linq.JObject TousAll
Newtonsoft.Json.Linq.JPropertyNewtonsoft.Json.Linq.JProperty TousAll
Newtonsoft.Json.Linq.JRawNewtonsoft.Json.Linq.JRaw TousAll
Newtonsoft.Json.Linq.JTokenNewtonsoft.Json.Linq.JToken TousAll
Newtonsoft.Json.Linq.JTokenTypeNewtonsoft.Json.Linq.JTokenType TousAll
Newtonsoft.Json.Linq.JValueNewtonsoft.Json.Linq.JValue TousAll
System.ArraySystem.Array TousAll
System.BitConverterSystem.BitConverter TousAll
System.BooleanSystem.Boolean TousAll
System.ByteSystem.Byte TousAll
System.CharSystem.Char TousAll
System.Collections.Generic.Dictionary<TKey, TValue>System.Collections.Generic.Dictionary<TKey, TValue> TousAll
System.Collections.Generic.HashSet<T>System.Collections.Generic.HashSet<T> TousAll
System.Collections.Generic.ICollection<T>System.Collections.Generic.ICollection<T> TousAll
System.Collections.Generic.IDictionary<TKey, TValue>System.Collections.Generic.IDictionary<TKey, TValue> TousAll
System.Collections.Generic.IEnumerable<T>System.Collections.Generic.IEnumerable<T> TousAll
System.Collections.Generic.IEnumerator<T>System.Collections.Generic.IEnumerator<T> TousAll
System.Collections.Generic.IList<T>System.Collections.Generic.IList<T> TousAll
System.Collections.Generic.IReadOnlyCollection<T>System.Collections.Generic.IReadOnlyCollection<T> TousAll
System.Collections.Generic.IReadOnlyDictionary<TKey, TValue>System.Collections.Generic.IReadOnlyDictionary<TKey, TValue> TousAll
System.Collections.Generic.ISet<T>System.Collections.Generic.ISet<T> TousAll
System.Collections.Generic.KeyValuePair<TKey, TValue>System.Collections.Generic.KeyValuePair<TKey, TValue> TousAll
System.Collections.Generic.List<T>System.Collections.Generic.List<T> TousAll
System.Collections.Generic.Queue<T>System.Collections.Generic.Queue<T> TousAll
System.Collections.Generic.Stack<T>System.Collections.Generic.Stack<T> TousAll
System.ConvertSystem.Convert TousAll
System.DateTimeSystem.DateTime (Constructor), Add, AddDays, AddHours, AddMilliseconds, AddMinutes, AddMonths, AddSeconds, AddTicks, AddYears, Date, Day, DayOfWeek, DayOfYear, DaysInMonth, Hour, IsDaylightSavingTime, IsLeapYear, MaxValue, Millisecond, Minute, MinValue, Month, Now, Parse, Second, Subtract, Ticks, TimeOfDay, Today, ToString, UtcNow, Year(Constructor), Add, AddDays, AddHours, AddMilliseconds, AddMinutes, AddMonths, AddSeconds, AddTicks, AddYears, Date, Day, DayOfWeek, DayOfYear, DaysInMonth, Hour, IsDaylightSavingTime, IsLeapYear, MaxValue, Millisecond, Minute, MinValue, Month, Now, Parse, Second, Subtract, Ticks, TimeOfDay, Today, ToString, UtcNow, Year
System.DateTimeKindSystem.DateTimeKind UtcUtc
System.DateTimeOffsetSystem.DateTimeOffset TousAll
System.DecimalSystem.Decimal TousAll
System.DoubleSystem.Double TousAll
System.ExceptionSystem.Exception TousAll
System.GuidSystem.Guid TousAll
System.Int16System.Int16 TousAll
System.Int32System.Int32 TousAll
System.Int64System.Int64 TousAll
System.IO.StringReaderSystem.IO.StringReader TousAll
System.IO.StringWriterSystem.IO.StringWriter TousAll
System.Linq.EnumerableSystem.Linq.Enumerable TousAll
System.MathSystem.Math TousAll
System.MidpointRoundingSystem.MidpointRounding TousAll
System.Net.WebUtilitySystem.Net.WebUtility TousAll
System.NullableSystem.Nullable TousAll
System.RandomSystem.Random TousAll
System.SByteSystem.SByte TousAll
System.Security.Cryptography.AsymmetricAlgorithmSystem.Security.Cryptography.AsymmetricAlgorithm TousAll
System.Security.Cryptography.CipherModeSystem.Security.Cryptography.CipherMode TousAll
System.Security.Cryptography.HashAlgorithmSystem.Security.Cryptography.HashAlgorithm TousAll
System.Security.Cryptography.HashAlgorithmNameSystem.Security.Cryptography.HashAlgorithmName TousAll
System.Security.Cryptography.HMACSystem.Security.Cryptography.HMAC TousAll
System.Security.Cryptography.HMACMD5System.Security.Cryptography.HMACMD5 TousAll
System.Security.Cryptography.HMACSHA1System.Security.Cryptography.HMACSHA1 TousAll
System.Security.Cryptography.HMACSHA256System.Security.Cryptography.HMACSHA256 TousAll
System.Security.Cryptography.HMACSHA384System.Security.Cryptography.HMACSHA384 TousAll
System.Security.Cryptography.HMACSHA512System.Security.Cryptography.HMACSHA512 TousAll
System.Security.Cryptography.KeyedHashAlgorithmSystem.Security.Cryptography.KeyedHashAlgorithm TousAll
System.Security.Cryptography.MD5System.Security.Cryptography.MD5 TousAll
System.Security.Cryptography.OidSystem.Security.Cryptography.Oid TousAll
System.Security.Cryptography.PaddingModeSystem.Security.Cryptography.PaddingMode TousAll
System.Security.Cryptography.RNGCryptoServiceProviderSystem.Security.Cryptography.RNGCryptoServiceProvider TousAll
System.Security.Cryptography.RSASystem.Security.Cryptography.RSA TousAll
System.Security.Cryptography.RSAEncryptionPaddingSystem.Security.Cryptography.RSAEncryptionPadding TousAll
System.Security.Cryptography.RSASignaturePaddingSystem.Security.Cryptography.RSASignaturePadding TousAll
System.Security.Cryptography.SHA1System.Security.Cryptography.SHA1 TousAll
System.Security.Cryptography.SHA1ManagedSystem.Security.Cryptography.SHA1Managed TousAll
System.Security.Cryptography.SHA256System.Security.Cryptography.SHA256 TousAll
System.Security.Cryptography.SHA256ManagedSystem.Security.Cryptography.SHA256Managed TousAll
System.Security.Cryptography.SHA384System.Security.Cryptography.SHA384 TousAll
System.Security.Cryptography.SHA384ManagedSystem.Security.Cryptography.SHA384Managed TousAll
System.Security.Cryptography.SHA512System.Security.Cryptography.SHA512 TousAll
System.Security.Cryptography.SHA512ManagedSystem.Security.Cryptography.SHA512Managed TousAll
System.Security.Cryptography.SymmetricAlgorithmSystem.Security.Cryptography.SymmetricAlgorithm TousAll
System.Security.Cryptography.X509Certificates.PublicKeySystem.Security.Cryptography.X509Certificates.PublicKey TousAll
System.Security.Cryptography.X509Certificates.RSACertificateExtensionsSystem.Security.Cryptography.X509Certificates.RSACertificateExtensions TousAll
System.Security.Cryptography.X509Certificates.X500DistinguishedNameSystem.Security.Cryptography.X509Certificates.X500DistinguishedName NomName
System.Security.Cryptography.X509Certificates.X509CertificateSystem.Security.Cryptography.X509Certificates.X509Certificate TousAll
System.Security.Cryptography.X509Certificates.X509Certificate2System.Security.Cryptography.X509Certificates.X509Certificate2 TousAll
System.Security.Cryptography.X509Certificates.X509ContentTypeSystem.Security.Cryptography.X509Certificates.X509ContentType TousAll
System.Security.Cryptography.X509Certificates.X509NameTypeSystem.Security.Cryptography.X509Certificates.X509NameType TousAll
System.SingleSystem.Single TousAll
System.StringSystem.String TousAll
System.StringComparerSystem.StringComparer TousAll
System.StringComparisonSystem.StringComparison TousAll
System.StringSplitOptionsSystem.StringSplitOptions TousAll
System.Text.EncodingSystem.Text.Encoding TousAll
System.Text.RegularExpressions.CaptureSystem.Text.RegularExpressions.Capture Index, Length, ValueIndex, Length, Value
System.Text.RegularExpressions.CaptureCollectionSystem.Text.RegularExpressions.CaptureCollection Count, ItemCount, Item
System.Text.RegularExpressions.GroupSystem.Text.RegularExpressions.Group Captures, SuccessCaptures, Success
System.Text.RegularExpressions.GroupCollectionSystem.Text.RegularExpressions.GroupCollection Count, ItemCount, Item
System.Text.RegularExpressions.MatchSystem.Text.RegularExpressions.Match Empty, Groups, ResultEmpty, Groups, Result
System.Text.RegularExpressions.RegexSystem.Text.RegularExpressions.Regex (Constructor), IsMatch, Match, Matches, Replace, Unescape, Split(Constructor), IsMatch, Match, Matches, Replace, Unescape, Split
System.Text.RegularExpressions.RegexOptionsSystem.Text.RegularExpressions.RegexOptions TousAll
System.Text.StringBuilderSystem.Text.StringBuilder TousAll
System.TimeSpanSystem.TimeSpan TousAll
System.TimeZoneSystem.TimeZone TousAll
System.TimeZoneInfo.AdjustmentRuleSystem.TimeZoneInfo.AdjustmentRule TousAll
System.TimeZoneInfo.TransitionTimeSystem.TimeZoneInfo.TransitionTime TousAll
System.TimeZoneInfoSystem.TimeZoneInfo TousAll
System.TupleSystem.Tuple TousAll
System.UInt16System.UInt16 TousAll
System.UInt32System.UInt32 TousAll
System.UInt64System.UInt64 TousAll
System.UriSystem.Uri TousAll
System.UriPartialSystem.UriPartial TousAll
System.Xml.Linq.ExtensionsSystem.Xml.Linq.Extensions TousAll
System.Xml.Linq.XAttributeSystem.Xml.Linq.XAttribute TousAll
System.Xml.Linq.XCDataSystem.Xml.Linq.XCData TousAll
System.Xml.Linq.XCommentSystem.Xml.Linq.XComment TousAll
System.Xml.Linq.XContainerSystem.Xml.Linq.XContainer TousAll
System.Xml.Linq.XDeclarationSystem.Xml.Linq.XDeclaration TousAll
System.Xml.Linq.XDocumentSystem.Xml.Linq.XDocument Toutes, sauf : chargerAll, except of: Load
System.Xml.Linq.XDocumentTypeSystem.Xml.Linq.XDocumentType TousAll
System.Xml.Linq.XElementSystem.Xml.Linq.XElement TousAll
System.Xml.Linq.XNameSystem.Xml.Linq.XName TousAll
System.Xml.Linq.XNamespaceSystem.Xml.Linq.XNamespace TousAll
System.Xml.Linq.XNodeSystem.Xml.Linq.XNode TousAll
System.Xml.Linq.XNodeDocumentOrderComparerSystem.Xml.Linq.XNodeDocumentOrderComparer TousAll
System.Xml.Linq.XNodeEqualityComparerSystem.Xml.Linq.XNodeEqualityComparer TousAll
System.Xml.Linq.XObjectSystem.Xml.Linq.XObject TousAll
System.Xml.Linq.XProcessingInstructionSystem.Xml.Linq.XProcessingInstruction TousAll
System.Xml.Linq.XTextSystem.Xml.Linq.XText TousAll
System.Xml.XmlNodeTypeSystem.Xml.XmlNodeType TousAll

Variable de contexteContext variable

Une variable nommée context est implicitement disponible dans toutes les expressions de stratégie.A variable named context is implicitly available in every policy expression. Ses membres fournissent des informations pertinentes pour la \request.Its members provide information pertinent to the \request. Tous les membres context sont en lecture seule.All of the context members are read-only.

Variable de contexteContext Variable Méthodes, propriétés et valeurs de paramètres autoriséesAllowed methods, properties, and parameter values
contextcontext Api : IApiApi: IApi

DéploiementDeployment

Elapsed: TimeSpan (intervalle de temps entre la valeur Timestamp et l’heure actuelle)Elapsed: TimeSpan - time interval between the value of Timestamp and current time

LastErrorLastError

opérationOperation

ProduitProduct

RequêteRequest

RequestId: Guid (identificateur de requête unique)RequestId: Guid - unique request identifier

RéponseResponse

AbonnementSubscription

Timestamp : DateTime (point dans le temps où la requête a été reçue)Timestamp: DateTime - point in time when request was received

Tracing: bool (indique si le traçage est activé ou désactivé)Tracing: bool - indicates if tracing is on or off

UtilisateurUser

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

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

IsCurrentRevision: boolIsCurrentRevision: bool

Name: stringName: string

Path: stringPath: string

Revision: stringRevision: string

ServiceUrl: IUrlServiceUrl: IUrl

Version: stringVersion: string
context.Deploymentcontext.Deployment Region: stringRegion: string

ServiceName: stringServiceName: string

Certificates: 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

Pour plus d’informations sur context.LastError, consultez la page Gestion des erreurs.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 Corps : IMessageBody ou null si la requête n’a pas de corps.Body: IMessageBody or null if request does not have a body.

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

Renvoie des valeurs d’en-tête de demande séparées par des virgules ou defaultValue si l’en-tête est introuvable.Returns comma-separated request header values or defaultValue if the header is not found.
context.Responsecontext.Response Corps : 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

Renvoie des valeurs d’en-tête de réponse séparées par des virgules ou defaultValue si l’en-tête est introuvable.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): Où T: string, JObject, JToken, JArray, XNode, XElement, XDocumentAs<T>(preserveContent: bool = false): Where T: string, byte[],JObject, JToken, JArray, XNode, XElement, XDocument

Les méthodes context.Request.Body.As<T> et context.Response.Body.As<T> sont utilisées pour lire un corps de message de demande et de réponse dans un type T spécifié.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. Par défaut, la méthode utilise le flux du corps du message d’origine et le rend indisponible après son retour.By default the method uses the original message body stream and renders it unavailable after it returns. Pour éviter cela en faisant en sorte que la méthode travaille sur une copie du flux du corps, définissez le paramètre preserveContent sur true.To avoid that by having the method operate on a copy of the body stream, set the preserveContent parameter to true. Accédez ici pour voir un exemple.Go here to see an example.
IUrlIUrl Host: stringHost: string

Path: stringPath: string

Port: intPort: int

Requête : 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

Renvoie des valeurs de paramètre de requête séparées par des virgules ou defaultValue si le paramètre est introuvable.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

Renvoie la valeur de variable avec conversion de type vers T ou defaultValue si la variable est introuvable.Returns variable value cast to type T or defaultValue if the variable is not found.

Cette méthode lève une exception si le type spécifié ne correspond pas au type réel de la variable renvoyée.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

Si le paramètre d’entrée contient une valeur valide d’en-tête de demande d’authentification de base HTTP, la méthode renvoie un objet de type BasicAuthCredentials ; sinon, la méthode renvoie 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

Si le paramètre d’entrée contient une valeur valide dans l’en-tête de demande d’authentification de base HTTP, la méthode renvoie true et le paramètre de résultats contient une valeur de type BasicAuthCredentials ; sinon, la méthode renvoie false.If the input parameter contains a valid HTTP Basic Authentication authorization value in the request header 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

Si le paramètre d’entrée contient une valeur valide d’en-tête de jeton JWT, la méthode renvoie un objet de type Jwt ; sinon, la méthode renvoie 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

Si le paramètre d’entrée contient une valeur valide d’en-tête de jeton JWT, la méthode renvoie true et le paramètre de résultats contient une valeur de type Jwt ; sinon, la méthode renvoie 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

IssuedAt: DateTime?IssuedAt: DateTime?

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

Renvoie des valeurs de revendication séparées par des virgules ou defaultValue si l’en-tête est introuvable.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 - texte brut à déchiffrerinput - plaintext to be encrypted

alg - nom de l'algorithme de chiffrement symétriquealg - name of a symmetric encryption algorithm

key - clé de chiffrementkey - encryption key

iv - vecteur d'initialisationiv - initialization vector

Renvoie un texte brut chiffré.Returns encrypted plaintext.
byte[] Encrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm)byte[] Encrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm) input - texte brut à déchiffrerinput - plaintext to be encrypted

alg - algorithme de chiffrementalg - encryption algorithm

Renvoie un texte brut chiffré.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 - texte brut à déchiffrerinput - plaintext to be encrypted

alg - algorithme de chiffrementalg - encryption algorithm

key - clé de chiffrementkey - encryption key

iv - vecteur d'initialisationiv - initialization vector

Renvoie un texte brut chiffré.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 - texte à déchiffrerinput - cypher text to be decrypted

alg - nom de l'algorithme de chiffrement symétriquealg - name of a symmetric encryption algorithm

key - clé de chiffrementkey - encryption key

iv - vecteur d'initialisationiv - initialization vector

Renvoie un texte brut.Returns plaintext.
byte[] Decrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm)byte[] Decrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm) input - texte à déchiffrerinput - cypher text to be decrypted

alg - algorithme de chiffrementalg - encryption algorithm

Renvoie un texte brut.Returns plaintext.
byte[] Decrypt(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 - texte à déchiffrerinput - cypher text to be decrypted

alg - algorithme de chiffrementalg - encryption algorithm

key - clé de chiffrementkey - encryption key

iv - vecteur d'initialisationiv - initialization vector

Renvoie un texte brut.Returns plaintext.
bool VerifyNoRevocation(entrée : ce certificat System.Security.Cryptography.X509Certificates.X509Certificate2)bool VerifyNoRevocation(input: this System.Security.Cryptography.X509Certificates.X509Certificate2) Effectue une validation de la chaîne X.509 sans vérifier l’état de révocation du certificat.Performs a X.509 chain validation without checking certificate revocation status.

Entrée - Objet de certificatinput - certificate object

Renvoie true si la validation réussit et false si elle échoue.Returns true if the validation succeeds; false if the validation fails.

Étapes suivantesNext steps

Pour plus d’informations sur l’utilisation de stratégies, consultez les pages :For more information working with policies, see: