API Management ポリシー式API Management policy expressions

この記事で説明するポリシー式の構文は C# 7 です。This article discusses policy expressions syntax is C# 7. それぞれの式は、暗黙的に指定されたコンテキスト変数と、許可されている .NET Framework の型のサブセットにアクセスできます。Each expression has access to the implicitly provided context variable and an allowed subset of .NET Framework types.

詳細:For more information:

  • バックエンド サービスにコンテキスト情報を指定する方法をご覧ください。See how to supply context information to your backend service. この情報を指定するには、クエリ文字列パラメーターの設定ポリシーおよび HTTP ヘッダーの設定ポリシーを使用します。Use the Set query string parameter and Set HTTP header policies to supply this information.
  • JWT を検証するポリシーを使用して、トークン クレームに基づいて操作へのアクセスを事前に承認する方法を示します。See how to use the Validate JWT policy to pre-authorize access to operations based on token claims.
  • API Inspector トレースによってポリシーの評価方法と評価結果を確認する方法を示します。See how to use an API Inspector trace to see how policies are evaluated and the results of those evaluations.
  • キャッシュから取得ポリシーおよびキャッシュに格納ポリシーの式を使用して、API Management 応答のキャッシュを構成する方法をご覧ください。See how to use expressions with the Get from cache and Store to cache policies to configure API Management response caching. バックエンド サービスの Cache-Control ディレクティブによって指定されたバックエンド サービスの応答キャッシュ時間と一致するように設定しています。Set a duration that matches the response caching of the backend service as specified by the backed service's Cache-Control directive.
  • コンテンツのフィルター処理を実行する方法をご覧ください。See how to perform content filtering. 制御フロー ポリシーおよび本文設定ポリシーを使用して、バックエンドから受信した応答からデータ要素を削除しています。Remove data elements from the response received from the backend using the Control flow and Set body policies.
  • ポリシー ステートメントをダウンロードするには、api-management-samples/policies GitHub リポジトリをご覧ください。To download the policy statements, see the api-management-samples/policies GitHub repo.

構文Syntax

単一ステートメントの式は @(expression) の形式で囲みます。expression は正しい C# 式ステートメントです。Single statement expressions are enclosed in @(expression), where expression is a well-formed C# expression statement.

複数ステートメントの式は @{expression} の形式で囲みます。Multi-statement expressions are enclosed in @{expression}. 複数ステートメントの式内のすべてのコード パスは return ステートメントで終了している必要があります。All code paths within multi-statement expressions must end with a return statement.

Examples

@(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;
  }
}

使用状況Usage

式は (ポリシー参照で特に指定されていない限り)、任意の API Management ポリシーで属性値またはテキスト値として使用できます。Expressions can be used as attribute values or text values in any API Management policies (unless the policy reference specifies otherwise).

重要

ポリシー式を使用する場合、ポリシーを定義したときのポリシー式の検証は限られています。When you use policy expressions, there is only limited verification of the policy expressions when the policy is defined. 式は、実行時にゲートウェイによって実行されます。ポリシー式によって生成されたすべての例外はランタイム エラーになります。Expressions are executed by the gateway at run-time, any exceptions generated by policy expressions result in a runtime error.

ポリシー式で使用できる .NET framework の型 .NET Framework types allowed in policy expressions

次の表は、ポリシー式で使用できる .NET Framework の型とメンバーの一覧です。The following table lists the .NET Framework types and their members that are allowed in policy expressions.

TypeType サポートされているメンバーSupported members
Newtonsoft.Json.FormattingNewtonsoft.Json.Formatting AllAll
Newtonsoft.Json.JsonConvertNewtonsoft.Json.JsonConvert SerializeObject、DeserializeObjectSerializeObject, DeserializeObject
Newtonsoft.Json.Linq.ExtensionsNewtonsoft.Json.Linq.Extensions AllAll
Newtonsoft.Json.Linq.JArrayNewtonsoft.Json.Linq.JArray AllAll
Newtonsoft.Json.Linq.JConstructorNewtonsoft.Json.Linq.JConstructor AllAll
Newtonsoft.Json.Linq.JContainerNewtonsoft.Json.Linq.JContainer AllAll
Newtonsoft.Json.Linq.JObjectNewtonsoft.Json.Linq.JObject AllAll
Newtonsoft.Json.Linq.JPropertyNewtonsoft.Json.Linq.JProperty AllAll
Newtonsoft.Json.Linq.JRawNewtonsoft.Json.Linq.JRaw AllAll
Newtonsoft.Json.Linq.JTokenNewtonsoft.Json.Linq.JToken AllAll
Newtonsoft.Json.Linq.JTokenTypeNewtonsoft.Json.Linq.JTokenType AllAll
Newtonsoft.Json.Linq.JValueNewtonsoft.Json.Linq.JValue AllAll
System.ArraySystem.Array AllAll
System.BitConverterSystem.BitConverter AllAll
System.BooleanSystem.Boolean AllAll
System.ByteSystem.Byte AllAll
System.CharSystem.Char AllAll
System.Collections.Generic.Dictionary<TKey, TValue>System.Collections.Generic.Dictionary<TKey, TValue> AllAll
System.Collections.Generic.HashSet<T>System.Collections.Generic.HashSet<T> AllAll
System.Collections.Generic.ICollection<T>System.Collections.Generic.ICollection<T> AllAll
System.Collections.Generic.IDictionary<TKey, TValue>System.Collections.Generic.IDictionary<TKey, TValue> AllAll
System.Collections.Generic.IEnumerable<T>System.Collections.Generic.IEnumerable<T> AllAll
System.Collections.Generic.IEnumerator<T>System.Collections.Generic.IEnumerator<T> AllAll
System.Collections.Generic.IList<T>System.Collections.Generic.IList<T> AllAll
System.Collections.Generic.IReadOnlyCollection<T>System.Collections.Generic.IReadOnlyCollection<T> AllAll
System.Collections.Generic.IReadOnlyDictionary<TKey, TValue>System.Collections.Generic.IReadOnlyDictionary<TKey, TValue> AllAll
System.Collections.Generic.ISet<T>System.Collections.Generic.ISet<T> AllAll
System.Collections.Generic.KeyValuePair<TKey, TValue>System.Collections.Generic.KeyValuePair<TKey, TValue> AllAll
System.Collections.Generic.List<T>System.Collections.Generic.List<T> AllAll
System.Collections.Generic.Queue<T>System.Collections.Generic.Queue<T> AllAll
System.Collections.Generic.Stack<T>System.Collections.Generic.Stack<T> AllAll
System.ConvertSystem.Convert AllAll
System.DateTimeSystem.DateTime (コンストラクター)、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 AllAll
System.DecimalSystem.Decimal AllAll
System.DoubleSystem.Double AllAll
System.ExceptionSystem.Exception AllAll
System.GuidSystem.Guid AllAll
System.Int16System.Int16 AllAll
System.Int32System.Int32 AllAll
System.Int64System.Int64 AllAll
System.IO.StringReaderSystem.IO.StringReader AllAll
System.IO.StringWriterSystem.IO.StringWriter AllAll
System.Linq.EnumerableSystem.Linq.Enumerable AllAll
System.MathSystem.Math AllAll
System.MidpointRoundingSystem.MidpointRounding AllAll
System.Net.WebUtilitySystem.Net.WebUtility AllAll
System.NullableSystem.Nullable AllAll
System.RandomSystem.Random AllAll
System.SByteSystem.SByte AllAll
System.Security.Cryptography.AsymmetricAlgorithmSystem.Security.Cryptography.AsymmetricAlgorithm AllAll
System.Security.Cryptography.CipherModeSystem.Security.Cryptography.CipherMode AllAll
System.Security.Cryptography.HashAlgorithmSystem.Security.Cryptography.HashAlgorithm AllAll
System.Security.Cryptography.HashAlgorithmNameSystem.Security.Cryptography.HashAlgorithmName AllAll
System.Security.Cryptography.HMACSystem.Security.Cryptography.HMAC AllAll
System.Security.Cryptography.HMACMD5System.Security.Cryptography.HMACMD5 AllAll
System.Security.Cryptography.HMACSHA1System.Security.Cryptography.HMACSHA1 AllAll
System.Security.Cryptography.HMACSHA256System.Security.Cryptography.HMACSHA256 AllAll
System.Security.Cryptography.HMACSHA384System.Security.Cryptography.HMACSHA384 AllAll
System.Security.Cryptography.HMACSHA512System.Security.Cryptography.HMACSHA512 AllAll
System.Security.Cryptography.KeyedHashAlgorithmSystem.Security.Cryptography.KeyedHashAlgorithm AllAll
System.Security.Cryptography.MD5System.Security.Cryptography.MD5 AllAll
System.Security.Cryptography.OidSystem.Security.Cryptography.Oid AllAll
System.Security.Cryptography.PaddingModeSystem.Security.Cryptography.PaddingMode AllAll
System.Security.Cryptography.RNGCryptoServiceProviderSystem.Security.Cryptography.RNGCryptoServiceProvider AllAll
System.Security.Cryptography.RSASystem.Security.Cryptography.RSA AllAll
System.Security.Cryptography.RSAEncryptionPaddingSystem.Security.Cryptography.RSAEncryptionPadding AllAll
System.Security.Cryptography.RSASignaturePaddingSystem.Security.Cryptography.RSASignaturePadding AllAll
System.Security.Cryptography.SHA1System.Security.Cryptography.SHA1 AllAll
System.Security.Cryptography.SHA1ManagedSystem.Security.Cryptography.SHA1Managed AllAll
System.Security.Cryptography.SHA256System.Security.Cryptography.SHA256 AllAll
System.Security.Cryptography.SHA256ManagedSystem.Security.Cryptography.SHA256Managed AllAll
System.Security.Cryptography.SHA384System.Security.Cryptography.SHA384 AllAll
System.Security.Cryptography.SHA384ManagedSystem.Security.Cryptography.SHA384Managed AllAll
System.Security.Cryptography.SHA512System.Security.Cryptography.SHA512 AllAll
System.Security.Cryptography.SHA512ManagedSystem.Security.Cryptography.SHA512Managed AllAll
System.Security.Cryptography.SymmetricAlgorithmSystem.Security.Cryptography.SymmetricAlgorithm AllAll
System.Security.Cryptography.X509Certificates.PublicKeySystem.Security.Cryptography.X509Certificates.PublicKey AllAll
System.Security.Cryptography.X509Certificates.RSACertificateExtensionsSystem.Security.Cryptography.X509Certificates.RSACertificateExtensions AllAll
System.Security.Cryptography.X509Certificates.X500DistinguishedNameSystem.Security.Cryptography.X509Certificates.X500DistinguishedName NameName
System.Security.Cryptography.X509Certificates.X509CertificateSystem.Security.Cryptography.X509Certificates.X509Certificate AllAll
System.Security.Cryptography.X509Certificates.X509Certificate2System.Security.Cryptography.X509Certificates.X509Certificate2 AllAll
System.Security.Cryptography.X509Certificates.X509ContentTypeSystem.Security.Cryptography.X509Certificates.X509ContentType AllAll
System.Security.Cryptography.X509Certificates.X509NameTypeSystem.Security.Cryptography.X509Certificates.X509NameType AllAll
System.SingleSystem.Single AllAll
System.StringSystem.String AllAll
System.StringComparerSystem.StringComparer AllAll
System.StringComparisonSystem.StringComparison AllAll
System.StringSplitOptionsSystem.StringSplitOptions AllAll
System.Text.EncodingSystem.Text.Encoding AllAll
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 (コンストラクター)、IsMatch、Match、Matches、Replace、Unescape、Split(Constructor), IsMatch, Match, Matches, Replace, Unescape, Split
System.Text.RegularExpressions.RegexOptionsSystem.Text.RegularExpressions.RegexOptions AllAll
System.Text.StringBuilderSystem.Text.StringBuilder AllAll
System.TimeSpanSystem.TimeSpan AllAll
System.TimeZoneSystem.TimeZone AllAll
System.TimeZoneInfo.AdjustmentRuleSystem.TimeZoneInfo.AdjustmentRule AllAll
System.TimeZoneInfo.TransitionTimeSystem.TimeZoneInfo.TransitionTime AllAll
System.TimeZoneInfoSystem.TimeZoneInfo AllAll
System.TupleSystem.Tuple AllAll
System.UInt16System.UInt16 AllAll
System.UInt32System.UInt32 AllAll
System.UInt64System.UInt64 AllAll
System.UriSystem.Uri AllAll
System.UriPartialSystem.UriPartial AllAll
System.Xml.Linq.ExtensionsSystem.Xml.Linq.Extensions AllAll
System.Xml.Linq.XAttributeSystem.Xml.Linq.XAttribute AllAll
System.Xml.Linq.XCDataSystem.Xml.Linq.XCData AllAll
System.Xml.Linq.XCommentSystem.Xml.Linq.XComment AllAll
System.Xml.Linq.XContainerSystem.Xml.Linq.XContainer AllAll
System.Xml.Linq.XDeclarationSystem.Xml.Linq.XDeclaration AllAll
System.Xml.Linq.XDocumentSystem.Xml.Linq.XDocument All、例外: LoadAll, except of: Load
System.Xml.Linq.XDocumentTypeSystem.Xml.Linq.XDocumentType AllAll
System.Xml.Linq.XElementSystem.Xml.Linq.XElement AllAll
System.Xml.Linq.XNameSystem.Xml.Linq.XName AllAll
System.Xml.Linq.XNamespaceSystem.Xml.Linq.XNamespace AllAll
System.Xml.Linq.XNodeSystem.Xml.Linq.XNode AllAll
System.Xml.Linq.XNodeDocumentOrderComparerSystem.Xml.Linq.XNodeDocumentOrderComparer AllAll
System.Xml.Linq.XNodeEqualityComparerSystem.Xml.Linq.XNodeEqualityComparer AllAll
System.Xml.Linq.XObjectSystem.Xml.Linq.XObject AllAll
System.Xml.Linq.XProcessingInstructionSystem.Xml.Linq.XProcessingInstruction AllAll
System.Xml.Linq.XTextSystem.Xml.Linq.XText AllAll
System.Xml.XmlNodeTypeSystem.Xml.XmlNodeType AllAll

コンテキスト変数Context variable

context という名前の変数は、暗黙的にすべてのポリシーで使用できます。A variable named context is implicitly available in every policy expression. そのメンバーは \requestに関連する情報を提供します。Its members provide information pertinent to the \request. すべての context メンバーは読み取り専用です。All of the context members are read-only.

コンテキスト変数Context Variable 使用可能なメソッド、プロパティ、パラメーターの値Allowed methods, properties, and parameter values
contextcontext Api:IApiApi: IApi

DeploymentDeployment

Elapsed:TimeSpan - Timestamp の値と現在時刻の間の時間間隔Elapsed: TimeSpan - time interval between the value of Timestamp and current time

LastErrorLastError

操作Operation

成果物Product

要求Request

RequestId:Guid - 一意の要求識別子RequestId: Guid - unique request identifier

応答Response

サブスクリプションSubscription

タイムスタンプ:DateTime - 要求を受信した時点Timestamp: DateTime - point in time when request was received

Tracing: bool - トレースがオンかオフかを示しますTracing: bool - indicates if tracing is on or off

UserUser

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

void Trace(message: 文字列)void Trace(message: string)
context.Apicontext.Api Id: 文字列Id: string

IsCurrentRevision: ブール値IsCurrentRevision: bool

Name: 文字列Name: string

Path: 文字列Path: string

Revision: 文字列Revision: string

ServiceUrl:IUrlServiceUrl: IUrl

Version: 文字列Version: string
context.Deploymentcontext.Deployment Region: 文字列Region: string

ServiceName: 文字列ServiceName: string

Certificates:IReadOnlyDictionary<string, X509Certificate2>Certificates: IReadOnlyDictionary<string, X509Certificate2>
context.LastErrorcontext.LastError Source: 文字列Source: string

Reason: 文字列Reason: string

Message: 文字列Message: string

Scope: 文字列Scope: string

Section: 文字列Section: string

Path: 文字列Path: string

PolicyId: 文字列PolicyId: string

context.LastError の詳細については、エラー処理に関する記事を参照してください。For more information about context.LastError, see Error handling.
context.Operationcontext.Operation Id: 文字列Id: string

Method: 文字列Method: string

Name: 文字列Name: string

UrlTemplate: 文字列UrlTemplate: string
context.Productcontext.Product Apis:IEnumerable<IApi>Apis: IEnumerable<IApi>

ApprovalRequired: ブール値ApprovalRequired: bool

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

Id: 文字列Id: string

Name: 文字列Name: string

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

SubscriptionLimit: int?SubscriptionLimit: int?

SubscriptionRequired: ブール値SubscriptionRequired: bool
context.Requestcontext.Request 本文は次のようになります。IMessageBody または null (要求に本文がない場合)。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: 文字列IpAddress: string

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

Method: 文字列Method: 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: 文字列headerName: string

defaultValue: 文字列defaultValue: string

コンマ区切りの要求ヘッダー値、またはヘッダーが見つからない場合は defaultValue を返します。Returns comma-separated request header values or defaultValue if the header is not found.
context.Responsecontext.Response 本文は次のようになります。IMessageBodyBody: IMessageBody

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

StatusCode: 整数StatusCode: int

StatusReason: 文字列StatusReason: string
string context.Response.Headers.GetValueOrDefault(headerName: string, defaultValue: string)string context.Response.Headers.GetValueOrDefault(headerName: string, defaultValue: string) headerName: 文字列headerName: string

defaultValue: 文字列defaultValue: string

コンマ区切りの応答ヘッダー値、またはヘッダーが見つからない場合は defaultValue を返します。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: 文字列Id: string

Key: 文字列Key: string

Name: 文字列Name: string

PrimaryKey: 文字列PrimaryKey: string

SecondaryKey: 文字列SecondaryKey: string

StartDate:DateTime?StartDate: DateTime?
context.Usercontext.User Email: 文字列Email: string

FirstName: 文字列FirstName: string

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

Id: 文字列Id: string

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

LastName: 文字列LastName: string

Note: 文字列Note: string

RegistrationDate:DateTimeRegistrationDate: DateTime
IApiIApi Id: 文字列Id: string

Name: 文字列Name: string

Path: 文字列Path: string

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

ServiceUrl:IUrlServiceUrl: IUrl

SubscriptionKeyParameterNames:ISubscriptionKeyParameterNamesSubscriptionKeyParameterNames: ISubscriptionKeyParameterNames
IGroupIGroup Id: 文字列Id: string

Name: 文字列Name: string
IMessageBodyIMessageBody As<T>(preserveContent: bool = false):T の値: string、byte[]、JObject、JToken、JArray、XNode、XElement、XDocumentAs<T>(preserveContent: bool = false): Where T: string, byte[],JObject, JToken, JArray, XNode, XElement, XDocument

context.Request.Body.As<T> メソッドと context.Response.Body.As<T> メソッドは、指定した型 T で要求および応答のメッセージ本文を読み取るのに使用します。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. メソッドでは既定で元のメッセージ本文のストリームが使用され、制御が戻ると使用不可になります。By default the method uses the original message body stream and renders it unavailable after it returns. 本文ストリームのコピーでメソッドを実行することでこれを回避するには、preserveContent パラメーターを true に設定します。To avoid that by having the method operate on a copy of the body stream, set the preserveContent parameter to true. 例については、こちらを参照してください。Go here to see an example.
IUrlIUrl Host: 文字列Host: string

Path: 文字列Path: string

Port: 整数Port: int

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

QueryString: 文字列QueryString: string

Scheme: 文字列Scheme: string
IUserIdentityIUserIdentity Id: 文字列Id: string

Provider: 文字列Provider: string
ISubscriptionKeyParameterNamesISubscriptionKeyParameterNames Header: 文字列Header: string

Query: 文字列Query: string
string IUrl.Query.GetValueOrDefault(queryParameterName: string, defaultValue: string)string IUrl.Query.GetValueOrDefault(queryParameterName: string, defaultValue: string) queryParameterName: 文字列queryParameterName: string

defaultValue: 文字列defaultValue: string

コンマ区切りのクエリ パラメーターの値、またはパラメーターが見つからない場合は defaultValue を返します。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: 文字列variableName: string

defaultValue:TdefaultValue: T

T 型へのキャスト変数値、または変数が見つからない場合は defaultValue を返します。Returns variable value cast to type T or defaultValue if the variable is not found.

このメソッドは、指定した型が返される変数の実際の型と一致しない場合に、例外をスローします。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: 文字列input: string

入力パラメーターに有効な HTTP 基本認証の承認要求ヘッダー値が含まれている場合、メソッドは BasicAuthCredentials 型のオブジェクトを返します。それ以外の場合、メソッドは 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: 文字列input: string

result: out BasicAuthCredentialsresult: out BasicAuthCredentials

入力パラメーターに要求ヘッダーの有効な HTTP 基本認証の承認値が含まれている場合、メソッドは true を返し、結果パラメーターには BasicAuthCredentials 型の値が含まれます。それ以外の場合、メソッドは 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: 文字列Password: string

UserId: 文字列UserId: string
Jwt AsJwt(input: this string)Jwt AsJwt(input: this string) input: 文字列input: string

入力パラメーターに有効な JWT トークン値が含まれている場合、メソッドは Jwt 型のオブジェクトを返します。それ以外の場合、メソッドは 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: 文字列input: string

result: out Jwtresult: out Jwt

入力パラメーターに有効な JWT トークン値が含まれている場合、メソッドは true を返し、結果パラメーターには Jwt 型の値が含まれます。それ以外の場合、メソッドは 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: 文字列Algorithm: string

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

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

ExpirationTime:DateTime?ExpirationTime: DateTime?

Id: 文字列Id: string

Issuer: 文字列Issuer: string

IssuedAt:DateTime?IssuedAt: DateTime?

NotBefore:DateTime?NotBefore: DateTime?

Subject: 文字列Subject: string

Type: 文字列Type: string
string Jwt.Claims.GetValueOrDefault(claimName: string, defaultValue: string)string Jwt.Claims.GetValueOrDefault(claimName: string, defaultValue: string) claimName: 文字列claimName: string

defaultValue: 文字列defaultValue: string

コンマ区切りの要求値、またはヘッダーが見つからない場合は defaultValue を返します。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 - 暗号化対象のプレーンテキストinput - plaintext to be encrypted

alg - 対称暗号化アルゴリズムの名前alg - name of a symmetric encryption algorithm

key - 暗号化キーkey - encryption key

iv - 初期化ベクターiv - initialization vector

暗号化されたプレーンテキストを返します。Returns encrypted plaintext.
byte[] Encrypt(input: this byte[], alg:System.Security.Cryptography.SymmetricAlgorithm)byte[] Encrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm) input - 暗号化対象のプレーンテキストinput - plaintext to be encrypted

alg - 暗号化アルゴリズムalg - encryption algorithm

暗号化されたプレーンテキストを返します。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 - 暗号化対象のプレーンテキストinput - plaintext to be encrypted

alg - 暗号化アルゴリズムalg - encryption algorithm

key - 暗号化キーkey - encryption key

iv - 初期化ベクターiv - initialization vector

暗号化されたプレーンテキストを返します。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 - 暗号化解除対象の暗号化テキストinput - cypher text to be decrypted

alg - 対称暗号化アルゴリズムの名前alg - name of a symmetric encryption algorithm

key - 暗号化キーkey - encryption key

iv - 初期化ベクターiv - initialization vector

プレーンテキストを返します。Returns plaintext.
byte[] Decrypt(input: this byte[], alg:System.Security.Cryptography.SymmetricAlgorithm)byte[] Decrypt(input: this byte[], alg: System.Security.Cryptography.SymmetricAlgorithm) input - 暗号化解除対象の暗号化テキストinput - cypher text to be decrypted

alg - 暗号化アルゴリズムalg - encryption algorithm

プレーンテキストを返します。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 - 暗号化解除対象の暗号化テキストinput - cypher text to be decrypted

alg - 暗号化アルゴリズムalg - encryption algorithm

key - 暗号化キーkey - encryption key

iv - 初期化ベクターiv - initialization vector

プレーンテキストを返します。Returns plaintext.
bool VerifyNoRevocation(input: this System.Security.Cryptography.X509Certificates.X509Certificate2)bool VerifyNoRevocation(input: this System.Security.Cryptography.X509Certificates.X509Certificate2) 証明書の失効状態を確認しないで、X.509 チェーン検証を実行します。Performs a X.509 chain validation without checking certificate revocation status.

input - 証明書オブジェクトinput - certificate object

検証に成功したら true、検証に失敗したら false を返します。Returns true if the validation succeeds; false if the validation fails.

次の手順Next steps

ポリシーを使用する方法の詳細については、次のトピックを参照してください。For more information working with policies, see: