diff --git a/Bin/Microsoft.IdentityModel.JsonWebTokens.dll b/Bin/Microsoft.IdentityModel.JsonWebTokens.dll new file mode 100644 index 000000000..1c17c5a22 Binary files /dev/null and b/Bin/Microsoft.IdentityModel.JsonWebTokens.dll differ diff --git a/Bin/Microsoft.IdentityModel.JsonWebTokens.dll.refresh b/Bin/Microsoft.IdentityModel.JsonWebTokens.dll.refresh new file mode 100644 index 000000000..db176b08b Binary files /dev/null and b/Bin/Microsoft.IdentityModel.JsonWebTokens.dll.refresh differ diff --git a/Bin/Microsoft.IdentityModel.JsonWebTokens.xml b/Bin/Microsoft.IdentityModel.JsonWebTokens.xml new file mode 100644 index 000000000..226722764 --- /dev/null +++ b/Bin/Microsoft.IdentityModel.JsonWebTokens.xml @@ -0,0 +1,736 @@ + + + + Microsoft.IdentityModel.JsonWebTokens + + + + + Constants for Json Web tokens. + + + + + A URI that represents the JSON XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON array XML data type. + + When mapping json to .Net Claim(s), if the value was not a string (or an enumeration of strings), the ClaimValue will serialized using the current JSON serializer, a property will be added with the .Net type and the ClaimTypeValue will be set to 'JsonClaimValueType'. + + + + A URI that represents the JSON null data type + + When mapping json to .Net Claim(s), we use empty string to represent the claim value and set the ClaimValueType to JsonNull + + + + A designed for representing a JSON Web Token (JWT). + + + + + Initializes a new instance of from a string in JWS or JWE Compact serialized format. + + A JSON Web Token that has been serialized in JWS or JWE Compact serialized format. + 'jwtEncodedString' is null or empty. + 'jwtEncodedString' is not in JWS or JWE Compact serialization format. + + The contents of the returned have not been validated, the JSON Web Token is simply decoded. Validation can be accomplished using the validation methods in + + + + + Initializes a new instance of the class where the header contains the crypto algorithms applied to the encoded header and payload. + + A string containing JSON which represents the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + A string containing JSON which represents the claims contained in the JWT. Each claim is a JSON object of the form { Name, Value }. + 'header' is null. + 'payload' is null. + + + + Gets the 'value' of the 'actort' claim { actort, 'value' }. + + If the 'actort' claim is not found, an empty string is returned. + + + + Gets the 'value' of the 'alg' claim { alg, 'value' }. + + If the 'alg' claim is not found, an empty string is returned. + + + + Gets the list of 'aud' claim { aud, 'value' }. + + If the 'aud' claim is not found, enumeration will be empty. + + + + Gets the AuthenticationTag from the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed into the constructor. + + + + Gets the Ciphertext from the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed into the constructor. + + + + Gets a for each JSON { name, value }. + + + + + Gets the 'value' of the 'cty' claim { cty, 'value' }. + + If the 'cty' claim is not found, an empty string is returned. + + + + Gets the 'value' of the 'enc' claim { enc, 'value' }. + + If the 'enc' value is not found, an empty string is returned. + + + + Gets the EncryptedKey from the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed into the constructor. + + + + Represents the cryptographic operations applied to the JWT and optionally any additional properties of the JWT. + + + + + Gets the 'value' of the 'jti' claim { jti, ''value' }. + + If the 'jti' claim is not found, an empty string is returned. + + + + Gets the InitializationVector from the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed into the constructor. + + + + Gets the associated with this instance. + + + + + Gets the 'value' of the 'iat' claim { iat, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'iat' claim is not found, then is returned. + + + + Gets the 'value' of the 'iss' claim { iss, 'value' }. + + If the 'iss' claim is not found, an empty string is returned. + + + + Gets the 'value' of the 'kid' claim { kid, 'value' }. + + If the 'kid' claim is not found, an empty string is returned. + + + + Represents the JSON payload. + + + + + Gets the EncodedHeader from the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed into the constructor. + + + + Gets the EncodedPayload from the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed into the constructor. + + + + Gets the EncodedSignature from the original raw data of this instance when it was created. + + The original JSON Compact serialized format passed into the constructor. + + + + Gets the original raw data of this instance when it was created. + + + + + Not implemented. + + + + + Not implemented. + + + + + Gets the 'value' of the 'sub' claim { sub, 'value' }. + + If the 'sub' claim is not found, an empty string is returned. + + + + Gets the 'value' of the 'typ' claim { typ, 'value' }. + + If the 'typ' claim is not found, an empty string is returned. + + + + Gets the 'value' of the 'nbf' claim { nbf, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'nbf' claim is not found, then is returned. + + + + Gets the 'value' of the 'exp' claim { exp, 'value' } converted to a assuming 'value' is seconds since UnixEpoch (UTC 1970-01-01T0:0:0Z). + + If the 'exp' claim is not found, then is returned. + + + + Gets the 'value' of the 'x5t' claim { x5t, 'value' }. + + If the 'x5t' claim is not found, an empty string is returned. + + + + Gets the 'value' of the 'zip' claim { zip, 'value' }. + + If the 'zip' claim is not found, an empty string is returned. + + + + Decodes the string into the header, payload and signature. + + the tokenized string. + the original token. + + + + Decodes the payload and signature from the JWE parts. + + Parts of the JWE including the header. + Assumes Header has already been set. + + + + Decodes the payload and signature from the JWS parts. + + Parts of the JWS including the header. + Assumes Header has already been set. + + + + Gets the 'value' corresponding to the provided key from the JWT payload { key, 'value' }. + + If the key has no corresponding value, returns null. + + + + Gets the 'value' corresponding to the provided key from the JWT header { key, 'value' }. + + If the key has no corresponding value, returns null. + + + + A designed for creating and validating Json Web Tokens. + See: http://tools.ietf.org/html/rfc7519 and http://www.rfc-editor.org/info/rfc7515. + + + + + Gets the type of the . + + The type of + + + + Determines if the string is a well formed Json Web Token (JWT). + see: http://tools.ietf.org/html/rfc7519 + + String that should represent a valid JWT. + Uses matching: + JWS: @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (dir): @"^[A-Za-z0-9-_]+\.\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$" + JWE: (wrappedkey): @"^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]$" + + + 'false' if the token is null or whitespace. + 'false' if token.Length is greater than . + 'true' if the token is in JSON compact serialization format. + + + + + Returns a value that indicates if this handler can validate a . + + 'true', indicating this instance can validate a . + + + + Creates a JWS (Json Web Signature). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWS. + A JWS in Compact Serialization Format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + A JWE in compact serialization format. + + + + Creates a JWE (Json Web Encryption). + + A string containing JSON which represents the JWT token payload. + Defines the security key and algorithm that will be used to sign the JWT. + Defines the security key and algorithm that will be used to encrypt the JWT. + Defines the compression algorithm that will be used to compress the JWT token payload. + A JWE in compact serialization format. + + + + Compress a JWT token string. + + + + if 'token' is null. + if 'algorithm' is null. + if the compression algorithm is not supported. + Compressed JWT token bytes. + + + + Decompress JWT token bytes. + + + + if 'tokenBytes' is null. + if 'algorithm' is null. + if the decompression algorithm is not supported. + Decompressed JWT token + + + + Decrypts a JWE and returns the clear text + + the JWE that contains the cypher text. + contains crypto material. + the decoded / cleartext contents of the JWE. + if 'jwtToken' is null. + if 'validationParameters' is null. + if 'jwtToken.Enc' is null or empty. + if decompression failed. + if 'jwtToken.Kid' is not null AND decryption fails. + if the JWE was not able to be decrypted. + + + + Returns a to use when validating the signature of a token. + + The that is being validated. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Returns a to use when decrypting a JWE. + + The the token that is being decrypted. + The that is being decrypted. + A required for validation. + Returns a to use for signature validation. + If key fails to resolve, then null is returned + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + 'token' is null or empty. + 'token.Length' is greater than . + If the 'token' is in JWE Compact Serialization format, only the protected header will be deserialized. + This method is unable to decrypt the payload. Use to obtain the payload. + + + + Converts a string into an instance of . + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A + 'token' is null or empty. + 'token.Length' is greater than . + + + + Validates a JWS or a JWE. + + A 'JSON Web Token' (JWT) in JWS or JWE Compact Serialization Format. + A required for validation. + A + + + + Validates the JWT signature. + + + + + Obtains a and validates the signature. + + Bytes to validate. + Signature to compare against. + to use. + Crypto algorithm to use. + Priority will be given to over . + 'true' if signature is valid. + + + + Constants for Json Web Tokens. + + + + + Short header type. + + + + + Long header type. + + + + + Short token type. + + + + + Long token type. + + + + + JWS - Token format: 'header.payload.signature'. Signature is optional, but '.' is required. + + + + + JWE - Token format: 'protectedheader.encryptedkey.iv.cyphertext.authenticationtag'. + + + + + The number of parts in a JWE token. + + + + + The number of parts in a JWS token. + + + + + The maximum number of parts in a JWT. + + + + + JWE header alg indicating a shared symmetric key is directly used as CEK. + + + + + List of header parameter names see: http://tools.ietf.org/html/rfc7519#section-5. + + + + + see:https://tools.ietf.org/html/rfc7515#section-4.1.1 + + + + + see:https://tools.ietf.org/html/rfc7515#section-4.1.10 + also:https://tools.ietf.org/html/rfc7519#section-5.2 + + + + + see:https://tools.ietf.org/html/rfc7516#section-4.1.2 + + + + + see:https://tools.ietf.org/html/rfc7518#section-4.7.1.1 + + + + + see:https://tools.ietf.org/html/rfc7515#section-4.1.2 + + + + + see:https://tools.ietf.org/html/rfc7515#section-4.1.3 + + + + + see:https://tools.ietf.org/html/rfc7515#section-4.1.4 + + + + + see:https://tools.ietf.org/html/rfc7515#section-4.1.9 + also:https://tools.ietf.org/html/rfc7519#section-5.1 + + + + + see:https://tools.ietf.org/html/rfc7515#section-4.1.6 + + + + + see:https://tools.ietf.org/html/rfc7515#page-12 + + + + + see:https://tools.ietf.org/html/rfc7515#section-4.1.5 + + + + + see:https://tools.ietf.org/html/rfc7516#section-4.1.3 + + + + + List of registered claims from different sources + http://tools.ietf.org/html/rfc7519#section-4 + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://openid.net/specs/openid-connect-core-1_0.html#IDToken + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-core-1_0.html#CodeIDToken + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://openid.net/specs/openid-connect-frontchannel-1_0.html#OPLogout + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + http://tools.ietf.org/html/rfc7519#section-4 + + + + + A class which contains useful methods for processing JWT tokens. + + + + + Regex that is used to figure out if a token is in JWS format. + + + + + Regex that is used to figure out if a token is in JWE format. + + + + + Produces a signature over the 'input'. + + String to be signed + The that contain crypto specs used to sign the token. + The bse64urlendcoded signature over the bytes obtained from UTF8Encoding.GetBytes( 'input' ). + 'input' or 'signingCredentials' is null. + + + + Generates key bytes. + + + + + Gets all decryption keys. + + + + + Gets the DateTime using the number of seconds from 1970-01-01T0:0:0Z (UTC) + + Claim in the payload that should map to an integer, float, or string. + The payload that contains the desired claim value. + If the claim is not found, the function returns: DateTime.MinValue + + If the value of the claim cannot be parsed into a long. + The DateTime representation of a claim. + + + + Log messages and codes + + + + + A class which contains the result of a token validation operation. + + + + + The validated security token. + + + + diff --git a/Bin/Microsoft.IdentityModel.Logging.dll b/Bin/Microsoft.IdentityModel.Logging.dll new file mode 100644 index 000000000..60646a6da Binary files /dev/null and b/Bin/Microsoft.IdentityModel.Logging.dll differ diff --git a/Bin/Microsoft.IdentityModel.Logging.dll.refresh b/Bin/Microsoft.IdentityModel.Logging.dll.refresh new file mode 100644 index 000000000..20db82a9c Binary files /dev/null and b/Bin/Microsoft.IdentityModel.Logging.dll.refresh differ diff --git a/Bin/Microsoft.IdentityModel.Logging.xml b/Bin/Microsoft.IdentityModel.Logging.xml new file mode 100644 index 000000000..2b45eddf6 --- /dev/null +++ b/Bin/Microsoft.IdentityModel.Logging.xml @@ -0,0 +1,398 @@ + + + + Microsoft.IdentityModel.Logging + + + + + Event source based logger to log different events. + + + + + Static logger that is exposed externally. An external application or framework can hook up a listener to this event source to log data in a custom way. + + + + + Flag which indicates whether or not PII is shown in logs. False by default. + + + + + String that is used in place of any arguments to log messages if the 'ShowPII' flag is set to false. + + + + + Indicates whether or the log message header (contains library version, date/time, and PII debugging information) has been written. + + + + + The log message that indicates the current library version. + + + + + The log message that indicates the date. + + + + + The log message that is shown when PII is off. + + + + + The log message that is shown when PII is off. + + + + + Writes an event log by using the provided string argument and current UTC time. + No level filtering is done on the event. + + The log message. + No level filtering. + + + + Writes an event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a verbose event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a verbose event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an information event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an information event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a warning event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a warning event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an error event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes an error event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes a critical event log by using the provided string argument and current UTC time. + + The log message. + + + + Writes a critical event log by using the provided string argument, current UTC time and the provided arguments list. + + The log message. + An object array that contains zero or more objects to format. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument and current UTC time. + + + + The log message. + + + + Writes an exception log by using the provided event identifer, exception argument, string argument, arguments list and current UTC time. + + + + The log message. + An object array that contains zero or more objects to format. + + + + Minimum log level to log events. Default is Warning. + + + + + Helper class for logging. + + + + + Logs an exception using the event source logger and returns new exception. + + argument that is null or empty. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + EventLevel is set to Error. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + message to log. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + message to log. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an argument exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger. + + The exception to log. + + + + Logs an exception using the event source logger. + + Identifies the level of an event to be logged. + The exception to log. + + + + Logs an information event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a verbose event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs a warning event. + + The log message. + An object array that contains zero or more objects to format. + + + + Logs an exception using the event source logger and returns new typed exception. + + Identifies the level of an event to be logged. + Identifies the argument whose value generated the ArgumentException. + the inner to be added to the outer exception. + Format string of the log message. + An object array that contains zero or more objects to format. + + + + Formats the string using InvariantCulture + + Format string. + Format arguments. + Formatted string. + + + + Log messages and codes for Microsoft.IdentityModel.Logging + + + + + Event listener that writes logs to a file or a fileStream provided by user. + + + + + Name of the default log file, excluding its path. + + + + + Initializes a new instance of that writes logs to text file. + + + + + Initializes a new instance of that writes logs to text file. + + location of the file where log messages will be written. + + + + Initializes a new instance of that writes logs to text file. + + StreamWriter where logs will be written. + + + + Called whenever an event has been written by an event source for which the event listener has enabled events. + + + + + + Releases all resources used by the current instance of the class. + + + + diff --git a/Bin/Microsoft.IdentityModel.Tokens.dll b/Bin/Microsoft.IdentityModel.Tokens.dll new file mode 100644 index 000000000..67cef9cb9 Binary files /dev/null and b/Bin/Microsoft.IdentityModel.Tokens.dll differ diff --git a/Bin/Microsoft.IdentityModel.Tokens.dll.refresh b/Bin/Microsoft.IdentityModel.Tokens.dll.refresh new file mode 100644 index 000000000..12542a8e9 Binary files /dev/null and b/Bin/Microsoft.IdentityModel.Tokens.dll.refresh differ diff --git a/Bin/Microsoft.IdentityModel.Tokens.xml b/Bin/Microsoft.IdentityModel.Tokens.xml new file mode 100644 index 000000000..531569363 --- /dev/null +++ b/Bin/Microsoft.IdentityModel.Tokens.xml @@ -0,0 +1,3367 @@ + + + + Microsoft.IdentityModel.Tokens + + + + + This adapter abstracts the 'RSA' differences between versions of .Net targets. + + + + + Calls and + + + + + The following code determines if RSACng is available on the .Net framework that is installed. + + + + + Base class for a Security Key that contains Asymmetric key material. + + + + + This must be overridden to get a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets the status of the private key. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Enum for the existence of private key + + + + + private key exists for sure + + + + + private key doesn't exist for sure + + + + + unable to determine the existence of private key + + + + + Provides signature and verification operations for Asymmetric Algorithms using a . + + + + + Mapping from algorithm to minimum .KeySize when creating signatures. + + + + + Mapping from algorithm to minimum .KeySize when verifying signatures. + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + If this is required to create signatures then set this to true. + + Creating signatures requires that the has access to a private key. + Verifying signatures (the default), does not require access to the private key. + + is null. + is null or empty. + is true and there is no private key. + If and algorithm pair are not supported. + + willCreateSignatures is true and .KeySize is less than the size corresponding to the given algorithm in . + + + .KeySize is less than the size corresponding to the algorithm in . Note: this is always checked. + + If the runtime is unable to create a suitable cryptographic provider. + + + + Gets the mapping from algorithm to the minimum .KeySize for creating signatures. + + + + + Gets the mapping from algorithm to the minimum .KeySize for verifying signatures. + + + + + Creating a Signature requires the use of a . + This method returns the type of the HashAlgorithm (as a string) + that describes the to use when generating a Signature. + + The SignatureAlgorithm in use. + if is null or whitespace. + if is not supported. + + + + This method is here, just to keep the #if out of the constructor. + + + + + + + + + Produces a signature over the 'input' using the and algorithm passed to . + + The bytes to be signed. + A signature over the input. + if is null. + if .Length == 0. + If has been called. + Sign is thread safe. + + + + Validates that an asymmetric key size is of sufficient size for a SignatureAlgorithm. + + The asymmetric key to validate. + Algorithm for which this key will be used. + Whether they key will be used for creating signatures. + if is null. + if is null or empty. + if .KeySize is less than the minimum + acceptable size. + + for minimum signing sizes. + for minimum verifying sizes. + + + + + Verifies that the over using the + and specified by this + are consistent. + + The bytes to generate the signature over. + The value to verify against. + true if signature matches, false otherwise. + is null or has length == 0. + is null or has length == 0. + If has been called. + Verify is thread safe. + + + + Calls to release managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Encodes and Decodes strings as Base64Url encoding. + + + + + The following functions perform base64url encoding which differs from regular base64 encoding as follows + * padding is skipped so the pad character '=' doesn't have to be percent encoded + * the 62nd and 63rd regular base64 encoding characters ('+' and '/') are replace with ('-' and '_') + The changes make the encoding alphabet file and URL safe. + + string to encode. + Base64Url encoding of the UTF8 bytes. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation that is encoded with base-64-url digits. Parameters specify + the subset as an offset in the input array, and the number of elements in the array to convert. + + An array of 8-bit unsigned integers. + An offset in inArray. + The number of elements of inArray to convert. + The string representation in base 64 url encodingof length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts a subset of an array of 8-bit unsigned integers to its equivalent string representation that is encoded with base-64-url digits. Parameters specify + the subset as an offset in the input array, and the number of elements in the array to convert. + + An array of 8-bit unsigned integers. + The string representation in base 64 url encodingof length elements of inArray, starting at position offset. + 'inArray' is null. + offset or length is negative OR offset plus length is greater than the length of inArray. + + + + Converts the specified string, which encodes binary data as base-64-url digits, to an equivalent 8-bit unsigned integer array. + base64Url encoded string. + UTF8 bytes. + + + + Decodes the string from Base64UrlEncoded to UTF8. + + string to decode. + UTF8 string. + + + + Constants for compression algorithms. + + + + + Compression provider factory for compression and decompression. + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Returns the default instance. + + + + + Extensibility point for custom compression support application wide. + + + + + Answers if an algorithm is supported. + + the name of the crypto algorithm. + true if the algorithm is supported, false otherwise. + + + + Returns a for a specific algorithm. + + the decompression algorithm. + a . + + + + Definition of cache for crypto providers + + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + true if the was added, false if the cache already contained the + + + + Trys to find a in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + true if the was removed, false if the was not found. + + + + Creates cryptographic operators by specifying a 's and algorithms. + + + + + Returns the default instance. + + + + + Gets or sets the default value for caching + + + + + Static constructor that initializes the default . + + + + + Default constructor for . + + + + + Constructor that creates a deep copy of given object. + + to copy from. + + + + Gets the + + + + + Extensibility point for creating custom cryptographic operators. + + By default, if set, will be called before creating cryptographic operators. + If true is returned, then will be called. The will throw if the + Cryptographic operator returned is not of the correct type. + + + + Gets or sets a bool controlling if should be cached. + + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + an instance of + 'key' is null. + 'algorithm' is null or empty. + 'key' is not a . + 'algorithm, key' pair is not supported. + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + an instance of + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + + When finished with the call . + + + + + Creates an instance of for a specific <SecurityKey, Algorithm>. + + the to use. + the algorithm to use. + an instance of + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + + When finished with the call . + + + + + Creates a that supports the and algorithm. + + The to use for signing. + The algorithm to use for signing. + 'key' is null. + 'algorithm' is null or empty. + ' is too small. + is too small. + is not a or a . + + AsymmetricSignatureProviders require access to a PrivateKey for Signing. + When finished with the call . + + + + + Returns a instance supports the and algorithm. + + The to use for signing. + The algorithm to use for verifying. + 'key' is null. + 'algorithm' is null or empty. + is too small. + is too small. + ' is not a or a . + When finished with the call . + + + + Returns a for a specific algorithm. + + the name of the hash algorithm to create. + A + When finished with the call . + 'algorithm' is null or empty. + 'algorithm' is not supported. + + + + Returns a for a specific algorithm. + + the keyed hash algorithm to create. + bytes to use to create the Keyed Hash + A + When finished with the call . + 'algorithm' is null or empty. + 'algorithm' is not supported. + + + + Answers if an algorithm is supported + + the name of the cryptographic algorithm + + + + + Checks if an 'algorithm, key' pair is supported. + + the algorithm to check. + the . + true if 'algorithm, key' pair is supported. + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + + + + When finished with a call this method for cleanup."/> + + to be released. + + + + When finished with a call this method for cleanup."/> + + to be released. + + + + When finished with a call this method for cleanup. The default behavior is to call + + to be released. + + + + Helper class for adding DateTimes and Timespans. + + + + + Add a DateTime and a TimeSpan. + The maximum time is DateTime.MaxTime. It is not an error if time + timespan > MaxTime. + Just return MaxTime. + + Initial value. + to add. + as the sum of time and timespan. + + + + Gets the Maximum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Gets the Minimum value for a DateTime specifying kind. + + DateTimeKind to use. + DateTime of specified kind. + + + + Ensures that DataTime is UTC. + + to convert. + + + + + Ensures that DateTime is UTC. + + to convert. + + + + + A compression provider that supports compression and decompression using the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + + + + + Initializes a new instance of the class used to compress and decompress used the algorithm. + The compression level to use when compressing. + + + + + Gets the compression algorithm. + + + + + Specifies whether compression should emphasize speed or compression size. + Set to by default. + + + + + Decompress the value using DEFLATE algorithm. + + the bytes to decompress. + the decompressed bytes. + + + + Compress the value using the DEFLATE algorithm. + + the bytes to compress. + the compressed bytes. + + + + Answers if a compression algorithm is supported. + + the name of the compression algorithm. + true if the compression algorithm is supported, false otherwise. + + + + Represents a ECDsa security key. + + + + + Returns a new instance of . + + + + + + instance used to initialize the key. + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets key size. + + + + + A class for properties that are used for token encryption. + + + + + Initializes a new instance of the class. + + . + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'certificate' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + to use when encrypting a session key. + A key wrap algorithm to use when encrypting a session key. + Data encryption algorithm to apply. + if 'key' is null. + if 'alg' is null or empty. + if 'enc' is null or empty. + + + + Initializes a new instance of the class. + + Used in scenarios when a key represents a 'shared' symmetric key. + For example, SAML 2.0 Assertion will be encrypted using a provided symmetric key + which won't be serialized to a SAML token. + + to apply. + Data encryption algorithm to apply. + If the is not a . + if 'enc' is null or empty. + + + + Gets the key wrap algorithm used for session key encryption. + + + + + Gets the data encryption algorithm. + + + + + Users can override the default with this property. This factory will be used for creating encryption providers. + + + + + Gets the used for encryption. + + + + + Provides authenticated encryption and decryption services. + + + + + Initializes a new instance of the class used for encryption and decryption. + The that will be used for crypto operations. + The encryption algorithm to apply. + 'key' is null. + 'algorithm' is null or whitespace. + key size is not large enough. + 'algorithm' is not supported. + a symmetricSignatureProvider is not created. + + + + + Gets the encryption algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by applications for extensibility scenarios. + + + + Gets the that is being used. + + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + containing ciphertext, iv, authenticationtag. + plaintext is null or empty. + authenticationData is null or empty. + AES crypto operation threw. See inner exception for details. + + + + Encrypts the 'plaintext' + + the data to be encrypted. + will be combined with iv and ciphertext to create an authenticationtag. + initialization vector for encryption. + containing ciphertext, iv, authenticationtag. + is null or empty. + is null or empty. + AES crypto operation threw. See inner exception for details. + + + + Decrypts ciphertext into plaintext + + the encrypted text to decrypt. + the authenticateData that is used in verification. + the initialization vector used when creating the ciphertext. + the authenticationTag that was created during the encyption. + decrypted ciphertext + is null or empty. + is null or empty. + is null or empty. + is null or empty. + signature over authenticationTag fails to verify. + AES crypto operation threw. See inner exception. + + + + Checks if an 'key, algorithm' pair is supported + + the + the algorithm to check. + true if 'key, algorithm' pair is supported. + + + + The algorithm parameter logically defines a HMAC algorithm. + This method returns the HMAC to use. + + + + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Checks that the key has sufficient length + + that contains bytes. + the algorithm to apply. + if is null. + if is null or empty. + if is not a supported algorithm. + + + + Contains the results of operation. + + + + + Initializes a new + + the used during + protected text. + the initialization vector used. + the bytes that need be passed to . + + + + Gets the . + + + + + Gets the Ciphertext. + + + + + Gets the initialization vector. + + + + + Gets the authentication tag + + + + + Provides Wrap key and Unwrap key services. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Unwrap a key. + + key to unwrap. + Unwrapped key. + + + + Wrap a key. + + the key to be wrapped + wrapped key. + + + + Provides RSA Wrap key and Unwrap key services. + + + + + Initializes a new instance of used for wrapping and un-wrappping keys. + These keys are usually symmetric session keys that are wrapped using the recipients public key. + The that will be used for cryptographic operations. + The KeyWrap algorithm to apply. + Whether this is required to un-wrap keys. If true, the private key is required. + 'key' is null. + 'algorithm' is null. + The key size doesn't match the algorithm. + If and algorithm pair are not supported. + Failed to create RSA algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Checks if an algorithm is supported. + + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using RSA decryption. + + the bytes to unwrap. + Unwrapped key + 'keyBytes' is null or length == 0. + If has been called. + Failed to unwrap the wrappedKey. + If the internal RSA algorithm is null. + + + + Wrap a key using RSA encryption. + + the key to be wrapped + A wrapped key + 'keyBytes' is null or has length == 0. + If has been called. + Failed to wrap the 'keyBytes'. + If the internal RSA algorithm is null. + + + + Provides Wrap key and Unwrap key services. + + + + + Initializes a new instance of the class used for wrap key and unwrap key. + The that will be used for crypto operations. + The KeyWrap algorithm to apply. + 'key' is null. + 'algorithm' is null. + If and algorithm pair are not supported. + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + + Gets the KeyWrap algorithm that is being used. + + + + + Gets or sets a user context for a . + + This is null by default. This can be used by runtimes or for extensibility scenarios. + + + + Gets the that is being used. + + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Returns the . + + + The cannot be converted to byte array + The keysize doesn't match the algorithm. + Failed to create symmetric algorithm with provided key and algorithm. + + + + Answers if an algorithm is supported + + the + the algorithm to use + true if the algorithm is supported; otherwise, false. + + + + Unwrap a key using Symmetric decryption. + + bytes to unwrap + Unwraped key + 'keyBytes' is null or length == 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to unwrap the wrappedKey. + + + + Wrap a key using Symmetric encryption. + + the key to be wrapped + The wrapped key result + 'keyBytes' is null or has length 0. + 'keyBytes' is not a multiple of 8. + If has been called. + Failed to wrap 'keyBytes'. + + + + Returns the absolute DateTime or the Seconds since Unix Epoch, where Epoch is UTC 1970-01-01T0:0:0Z. + + + + + DateTime as UTV for UnixEpoch + + + + + Per JWT spec: + Gets the number of seconds from 1970-01-01T0:0:0Z as measured in UTC until the desired date/time. + + The DateTime to convert to seconds. + if dateTimeUtc less than UnixEpoch, return 0 + the number of seconds since Unix Epoch. + + + + Creates a DateTime from epoch time. + + Number of seconds. + The DateTime in UTC. + + + + Thrown when JWE compression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Thrown when JWE decompression fails. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Represents a security token exception when decryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Represents a security token exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime + when decrypting a token. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Represents a security token exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Throw this exception when a received Security Token has expiration time in the past. + + + + + Gets or sets the Expires value that created the validation exception. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + This exception is thrown when 'audience' of a token was not valid. + + + + + Gets or sets the InvalidAudience that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + This exception is thrown when 'issuer' of a token was not valid. + + + + + Gets or sets the InvalidIssuer that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + This exception is thrown when 'lifetime' of a token was not valid. + + + + + Gets or sets the NotBefore value that created the validation exception. + + + + + Gets or sets the Expires value that created the validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + This exception is thrown when 'signature' of a token was not valid. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Throw this exception when a received Security Token has an invalid issuer signing key. + + + + + Gets or sets the SigningKey that was found invalid. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Represents a key wrap exception when encryption failed. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + This exception is thrown when a security is missing an ExpirationTime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Throw this exception when a received Security token has an effective time + in the future. + + + + + Gets or sets the NotBefore value that created the validation exception. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + This exception is thrown when an add to the TokenReplayCache fails. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Throw this exception when a received Security Token has been replayed. + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + Initializes a new instance of + + + + + This exception is thrown when a security token contained a key identifier but the key was not found by the runtime. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + + + + Initializes a new instance of the class. + + Addtional information to be included in the exception and displayed to user. + A that represents the root cause of the exception. + + + + Represents a security token validation exception. + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class with a specified error message. + + The error message that explains the reason for the exception. + + + + Initializes a new instance of the class with a specified error message + and a reference to the inner exception that is the cause of this exception. + + The error message that explains the reason for the exception. + The that is the cause of the current exception, or a null reference if no inner exception is specified. + + + + Compression provider interface. + + + + + Gets the compression algorithm. + + + + + Called to determine if an algorithm is supported. + + the algorithm that defines the compression method. + true if supported + + + + Decompress. + + the value to decompress. + + + + Compress. + + the value to decompress. + + + + Provides extensibility for cryptographic operators. + If custom operators are needed for then can be set to + return these operators. will be before each creation. + + + + + Called to determine if a cryptographic operation is supported. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + true if supported + + + + returns a cryptographic operator that supports the algorithm. + + the algorithm that defines the cryptographic operator. + the arguments required by the cryptographic operator. May be null. + call when finished with the object. + + + + called to release the object returned from + + the object returned from . + + + + Defines a cache for crypto providers. + Current support is limited to only. + + + + + Returns the cache key to use when looking up an entry into the cache for a + + the to create the key for. + if signatureProvider is null. + the cache key to use for finding a . + + + + Returns the 'key' that will be used to find a crypto provider in this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + the cache key to use for finding a crypto provider. + + + + Trys to adds a to this cache. + + to cache. + if signatureProvider is null. + true if the was added, false if the cache already contained the + if the is added will be set to 'this'. + + + + Trys to find a to this cache. + + the key that is used to by the crypto provider. + the algorithm that is used by the crypto provider. + the typeof the crypto provider obtained by calling object.GetType(). + a bool to indicate if the will be used to sign. + the if found. + if securityKey is null. + if algorithm is null or empty string. + if typeofProvider is null or empty string. + true if a was found, false otherwise. + + + + Trys to remove a from this cache. + + to remove. + if signatureProvider is null. + true if the was removed, false if the was not found. + if the is removed will be set to null. + + + + ISecurityTokenValidator + + + + + Returns true if the token can be read, false otherwise. + + + + + Returns true if a token can be validated. + + + + + Gets and sets the maximum size in bytes, that a will be processed. + + + + + Validates a token passed as a string using + + + + + Interface that defines a simple cache for tacking replaying of security tokens. + + + + + Try to add a securityToken. + + the security token to add. + the time when security token expires. + true if the security token was successfully added. + + + + Try to find securityToken + + the security token to find. + true if the security token is found. + + + + Constants for JsonWebAlgorithms "kty" Key Type (sec 6.1) + http://tools.ietf.org/html/rfc7518#section-6.1 + + + + + Represents a JSON Web Key as defined in http://tools.ietf.org/html/rfc7517. + + + + + Magic numbers identifying ECDSA blob types + + + + + Returns a new instance of . + + A string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of . + + + + + Initializes an new instance of from a json string. + + A string that contains JSON Web Key parameters in JSON format. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets or sets the 'alg' (KeyType).. + + + + + Gets or sets the 'crv' (ECC - Curve).. + + + + + Gets or sets the 'd' (ECC - Private Key OR RSA - Private Exponent).. + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dp' (RSA - First Factor CRT Exponent).. + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'dq' (RSA - Second Factor CRT Exponent).. + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'e' (RSA - Exponent).. + + + + + Gets or sets the 'k' (Symmetric - Key Value).. + + Base64urlEncoding + + + + Gets the key id of this . + + + + + Gets the 'key_ops' (Key Operations).. + + + + + Gets or sets the 'kid' (Key ID).. + + + + + Gets or sets the 'kty' (Key Type).. + + + + + Gets or sets the 'n' (RSA - Modulus).. + + Value is formated as: Base64urlEncoding + + + + Gets or sets the 'oth' (RSA - Other Primes Info).. + + + + + Gets or sets the 'p' (RSA - First Prime Factor).. + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'q' (RSA - Second Prime Factor).. + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'qi' (RSA - First CRT Coefficient).. + + Value is formated as: Base64urlUInt + + + + Gets or sets the 'use' (Public Key Use).. + + + + + Gets or sets the 'x' (ECC - X Coordinate).. + + Value is formated as: Base64urlEncoding + + + + Gets the 'x5c' collection (X.509 Certificate Chain).. + + + + + Gets or sets the 'x5t' (X.509 Certificate SHA-1 thumbprint).. + + + + + Gets or sets the 'x5t#S256' (X.509 Certificate SHA-1 thumbprint).. + + + + + Gets or sets the 'x5u' (X.509 URL).. + + + + + Gets or sets the 'y' (ECC - Y Coordinate).. + + Value is formated as: Base64urlEncoding + + + + Gets the key size of . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets a bool that determines if the 'key_ops' (Key Operations) property should be serialized. + This is used by Json.NET in order to conditionally serialize properties. + + true if 'key_ops' (Key Operations) is not empty; otherwise, false. + + + + Gets a bool that determines if the 'x5c' collection (X.509 Certificate Chain) property should be serialized. + This is used by Json.NET in order to conditionally serialize properties. + + true if 'x5c' collection (X.509 Certificate Chain) is not empty; otherwise, false. + + + + Returns the size of key in bytes + + Represents ecdsa curve -P256, P384, P521 + Size of the key in bytes + + + + Returns the size of key in bits. + + Represents ecdsa curve -P256, P384, P512 + Size of the key in bits. + + + + Returns the magic value representing the curve corresponding to the curve id. + + Represents ecdsa curve -P256, P384, P512 + Whether the provider will create signatures or not + Uint representing the magic number + + + + Converts a into a + Supports: , and . + + + + + Converts a into a + + a to convert. + a + if is null. + if is not a supported type. + Supports: , and . + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Converts a into a + + a to convert. + a + if is null. + + + + Constants for JsonWebKey Elliptical Curve Types + https://tools.ietf.org/html/rfc7518#section-6.2.1.1 + + + + + Names for Json Web Key Values + + + + + Contains a collection of that can be populated from a json string. + + provides support for http://tools.ietf.org/html/rfc7517. + + + + Returns a new instance of . + + a string that contains JSON Web Key parameters in JSON format. + + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of . + + + + + Initializes an new instance of from a json string. + + a json string containing values. + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + Initializes an new instance of from a json string. + + a json string containing values. + jsonSerializerSettings + If 'json' is null or empty. + If 'json' fails to deserialize. + + + + When deserializing from JSON any properties that are not defined will be placed here. + + + + + Gets the . + + + + + Returns the JsonWebKeys as a . + + + + + Names for Json Web Key Set Values + + + + + Constants for JsonWebKeyUse (sec 4.2) + http://tools.ietf.org/html/rfc7517#section-4 + + + + + Log messages and codes + + + + + The purpose of this class is to ensure that we obtain an RsaCryptoServiceProvider that supports SHA-256 signatures. + If the original RsaCryptoServiceProvider doesn't support SHA-256, we create a new one using the same KeyContainer. + + + + + Gets the SignatureAlgorithm + + + + + Gets the KeyExchangeAlgorithm + + + + + Initializes an new instance of . + + + if is null. + + + + Decrypts data with the System.Security.Cryptography.RSA algorithm. + + The data to be decrypted. + true to perform direct System.Security.Cryptography.RSA decryption using OAEP padding + (only available on a computer running Microsoft Windows XP or later) otherwise, false to use PKCS#1 v1.5 padding. + decrypted bytes. + if is null or has Length == 0. + + + + Decrypts the input. + + the bytes to decrypt. + decrypted bytes + if is null or Length == 0. + + + + Encrypts data with the System.Security.Cryptography.RSA algorithm. + + The data to be encrypted. + true to perform direct System.Security.Cryptography.RSA encryption using OAEP padding (only available on a computer running Microsoft Windows XP or later); + otherwise, false to use PKCS#1 v1.5 padding. + encrypted bytes. + if is null or has Length == 0. + + + + Encrypts the input. + + the bytes to encrypt. + encrypted bytes. + if is null or Length == 0. + + + + Computes the hash value of the specified byte array using the specified hash algorithm, and signs the resulting hash value. + + The input byte array for which to compute the hash. + The hash algorithm to use to create the hash value. + The Signature for the specified data. + if is null or Length == 0. + if is null. + + + + Verifies that a digital signature is valid by determining the hash value in the signature using the provided public key and comparing it to the hash value of the provided data. + + The input byte array. + The hash algorithm to use to create the hash value. + The signature byte array to be verified. + true if the signature is valid; otherwise, false. + if is null or Length == 0. + if is null. + if is null or Length == 0. + + + + Exports rsa parameters as + + flag to control is private parameters are included. + + + + + Imports rsa parameters as + + to import. + + + + Calls to release managed resources. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Represents a Rsa security key. + + + + + Initializes a new instance of the class. + + + + + + Initializes a new instance of the class. + + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets RSA key size. + + + + + used to initialize the key. + + + + + instance used to initialize the key. + + + + + Constants for Security Algorithm. + + + + + Base class for Security Key. + + + + + This must be overridden to get the size of this . + + + + + Gets the key id of this . + + + + + Gets or sets . + + + + + Contains information about the keys inside the tokens. + + + + + Base class for security token. + + + + + This must be overridden to get the Id of this . + + + + + This must be overridden to get the issuer of this . + + + + + This must be overridden to get the . + + + + + This must be overridden to get or set the that signed this instance. + + .ValidateToken(...) can this value when a is used to successfully validate a signature. + + + + This must be overridden to get the time when this was Valid. + + + + + This must be overridden to get the time when this is no longer Valid. + + + + + Contains some information which used to create a security token. + + + + + Gets or sets the value of the 'audience' claim. + + + + + Gets or sets the used to create a encrypted security token. + + + + + Gets or sets the value of the 'expiration' claim. + + + + + Gets or sets the issuer of this . + + + + + Gets or sets the time the security token was issued. + + + + + Gets or sets the notbefore time for the security token. + + + + + Gets or sets the used to create a security token. + + + + + Gets or sets the . + + + + + Defines the interface for a Security Token Handler. + + + + + Creates an instance of + + + + + Returns . + + + true if attached; otherwise, false. + + + + Returns . + + + + + + Gets a value indicating whether this handler supports validation of tokens + handled by this instance. + v + 'True' if the instance is capable of SecurityToken + validation. + + + + Gets a value indicating whether the class provides serialization functionality to serialize token handled + by this instance. + + true if the WriteToken method can serialize this token. + + + + This must be overridden to get the System.Type of the SecurityToken this instance handles. + + + + + Indicates whether the current token string can be read as a token + of the type handled by this instance. + + The token string thats needs to be read. + 'True' if the ReadToken method can parse the token string. + + + + Deserializes from string a token of the type handled by this instance. + + The string to be deserialized. + SecurityToken instance which represents the serialized token. + + + + Gets security token. + + . + SecurityToken instance which represents the serialized token. + + + + Serializes to string a token of the type handled by this instance. + + A token of type TokenType. + The serialized token. + + + + This must be overridden to serialize to XML a token of the type handled by this instance. + + The XML writer. + A token of type . + + + + This must be overridden to deserialize token with the provided . + + . + the current . + SecurityToken instance which represents the serialized token. + + + + This must be overridden to validate a token passed as a string using + + A token of type . + the current . + The token of type that was validated. + + + + Provides signature services, signing and verifying. + + + + + Initializes a new instance of the class used to create and verify signatures. + + The that will be used for signature operations. + The signature algorithm to apply. + is null. + is null or empty. + + + + Gets the signature algorithm. + + + + + Gets or sets a user context for a . + + This is null by default. This is for use by the application and not used by this SDK. + + + + Gets or sets the that is associated with this + + + + + Calls and + + + + + Can be over written in descendants to dispose of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer + + + + Gets the . + + + + + This must be overridden to produce a signature over the 'input'. + + bytes to sign. + signed bytes + + + Verifies that the over using the + and specified by this + are consistent. + the bytes that were signed. + signature to compare against. + true if the computed signature matches the signature parameter, false otherwise. + + + + Gets or sets a bool indicating if this is expected to create signatures. + + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'key' is null. + if 'algorithm' is null or empty. + + + + Initializes a new instance of the class. + + . + The signature algorithm to apply. + The digest algorithm to apply. + if 'key' is null. + if 'algorithm' is null or empty. + if 'digest' is null or empty. + + + + Gets the signature algorithm. + + if 'value' is null or empty. + + + + Gets the digest algorithm. + + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + This will have precedence over + + + + Gets the used for signature creation or validation. + + + + + Gets the key id associated with . + + + + + Defines the default set of algorithms this library supports + + + + + Checks if an 'algorithm, key' pair is supported. + + the algorithm to check. + the . + true if 'algorithm, key' pair is supported. + + + + Represents a symmetric security key. + + + + + Returns a new instance of instance. + + The byte array of the key. + + + + Gets the key size. + + + + + Gets the byte array of the key. + + + + + Provides signing and verifying operations using a and specifying an algorithm. + + + + + This is the minimum .KeySize when creating and verifying signatures. + + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Initializes a new instance of the class that uses an to create and / or verify signatures over a array of bytes. + + The that will be used for signature operations. + The signature algorithm to use. + indicates if this will be used to create signatures. + 'key' is null. + 'algorithm' is null or empty. + If and algorithm pair are not supported. + '.KeySize' is smaller than . + + + + Gets or sets the minimum .KeySize"/>. + + 'value' is smaller than . + + + + Called to obtain the byte[] needed to create a + + that will be used to obtain the byte[]. + [] that is used to populated the KeyedHashAlgorithm. + if key is null. + if a byte[] can not be obtained from SecurityKey. + and are supported. + For a .Key is returned + For a Base64UrlEncoder.DecodeBytes is called with if == JsonWebAlgorithmsKeyTypes.Octet + + + + + Returns the . + + The hash algorithm to use to create the hash value. + The byte array of the key. + + + + + Gets the for this . + + + + + Produces a signature over the 'input' using the and 'algorithm' passed to . + + The bytes to sign. + Signed bytes + 'input' is null. + 'input.Length' == 0. + has been called. + is null. This can occur if a derived type deletes it or does not create it. + Sign is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + Verify is thread safe. + + + + Verifies that a signature created over the 'input' matches the signature. Using and 'algorithm' passed to . + + The bytes to verify. + signature to compare against. + number of bytes of signature to use. + true if computed signature matches the signature parameter, false otherwise. + 'input' is null. + 'signature' is null. + 'input.Length' == 0. + 'signature.Length' == 0. + 'length < 1' + has been called. + If the internal is null. This can occur if a derived type deletes it or does not create it. + + + + Disposes of internal components. + + true, if called from Dispose(), false, if invoked inside a finalizer. + + + + Defines properties shared across all security token handlers. + + + + + Default lifetime of tokens created. When creating tokens, if 'expires' and 'notbefore' are both null, + then a default will be set to: expires = DateTime.UtcNow, notbefore = DateTime.UtcNow + TimeSpan.FromMinutes(TokenLifetimeInMinutes). + + + + + Gets and sets the maximum token size in bytes that will be processed. + + 'value' less than 1. + + + + Gets or sets a bool that controls if token creation will set default 'exp', 'nbf' and 'iat' if not specified. + + See: for configuration. + + + + Gets or sets the token lifetime in minutes. + + Used during token creation to set the default expiration ('exp'). + 'value' less than 1. + + + + Definition for AudienceValidator. + + The audiences found in the . + The being validated. + required for validation. + true if the audience is considered valid. + + + + Definition for IssuerSigningKeyResolver. + + The representation of the token that is being validated. + The that is being validated. It may be null. + A key identifier. It may be null. + required for validation. + A to use when validating a signature. + + + + Definition for IssuerSigningKeyValidator. + + The that signed the . + The being validated. + required for validation. + + + + Definition for IssuerValidator. + + The issuer to validate. + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + The delegate should return a non null string that represents the 'issuer'. If null a default value will be used. + + + + Definition for LifetimeValidator. + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + + + + Definition for TokenReplayValidator. + + The 'expiration' time found in the . + The being validated. + required for validation. + + + + + Definition for SignatureValidator. + + A securityToken with a signature. + required for validation. + + + + Definition for TokenReader. + + A securityToken with a signature. + required for validation. + + + + Definition for TokenDecryptionKeyResolver. + + The representation of the token to be decrypted. + The to be decrypted. The runtime by default passes null. + A key identifier. It may be null. + required for validation. + A to use when decrypting the token. + + + + Contains a set of parameters that are used by a when validating a . + + + + + This is the fallback authenticationtype that a will use if nothing is set. + + + + + Default for the clock skew. + + 300 seconds (5 minutes). + + + + Default for the maximm token size. + + 2 MB (mega bytes). + + + + Copy constructor for . + + + + + Initializes a new instance of the class. + + + + + Gets or sets . + + + + + Gets or sets a delegate that will be used to validate the audience. + + + If set, this delegate will be called to validate the 'audience' instead of normal processing. + If is false, this delegate will not be called. + + + + + Gets or sets a delegate that will be used to read the token. + + + If set, this delegate will be called to read the token instead of normal processing. + + + + + Gets or sets the AuthenticationType when creating a . + + If 'value' is null or whitespace. + + + + Gets or sets the clock skew to apply when validating a time. + + If 'value' is less than 0. + + + + Returns a new instance of with values copied from this object. + + A new object copied from this object + This is a shallow Clone. + + + + Creates a using: + + 'NameClaimType': If NameClaimTypeRetriever is set, call delegate, else call NameClaimType. If the result is a null or empty string, use . + 'RoleClaimType': If RoleClaimTypeRetriever is set, call delegate, else call RoleClaimType. If the result is a null or empty string, use . + + A with Authentication, NameClaimType and RoleClaimType set. + + + + Users can override the default with this property. This factory will be used for creating signature providers. + + + + + Gets or sets the that is to be used for decryption. + + + + + Gets or sets a delegate that will be called to retreive a used for decryption. + + + This will be used to decrypt the token. This can be helpful when the does not contain a key identifier. + + + + + Gets or sets a delegate for validating the that signed the token. + + + If set, this delegate will be called to validate the that signed the token, instead of normal processing. + + + + + Gets or sets the that is to be used for signature validation. + + + + + Gets or sets a delegate that will be called to retrieve a used for signature validation. + + + This will be used to check the signature. This can be helpful when the does not contain a key identifier. + + + + + Gets or sets an used for signature validation. + + + + + Gets or sets a delegate that will be used to validate the issuer of the token. + + + If set, this delegate will be called to validate the 'issuer' of the token, instead of normal processing. + If is false, this delegate will not be called. + + + + + Gets or sets a delegate that will be used to validate the lifetime of the token + + + If set, this delegate will be called to validate the lifetime of the token, instead of normal processing. + If is false, this delegate will not be called. + + + + + Gets or sets a delegate that will be used to validate the token replay of the token + + + If set, this delegate will be called to validate the token replay of the token, instead of normal processing. + If is false, this delegate will not be called. + + + + + Gets or sets a that defines the . + + + Controls the value returns. It will return the first where the equals . + + + + + Gets or sets the that defines the . + + + Controls the results of . + Each where == will be checked for a match against the 'string' passed to . + + + + + Gets or sets a delegate that will be called to obtain the NameClaimType to use when creating a ClaimsIdentity + after validating a token. + + + + + Gets or sets the that contains a collection of custom key/value pairs. This allows addition of parameters that could be used in custom token validation scenarios. + + + + + Gets or sets a value indicating whether tokens must have an 'expiration' value. + + + + + Gets or sets a value indicating whether a can be considered valid if not signed. + + + + + Gets or sets a delegate that will be called to obtain the RoleClaimType to use when creating a ClaimsIdentity + after validating a token. + + + + + Gets or sets a boolean to control if the original token should be saved after the security token is validated. + + The runtime will consult this value and save the original token that was validated. + + + + Gets or sets a delegate that will be used to validate the signature of the token. + + + If set, this delegate will be called to signature of the token, instead of normal processing. + + + + + Gets or sets the that is to be used for decrypting inbound tokens. + + + + + Gets or set the that store tokens that can be checked to help detect token replay. + + If set, then tokens must have an expiration time or the runtime will fault. + + + + Gets or sets a value indicating if an actor token is detected, whether it should be validated. + + + + + Gets or sets a boolean to control if the audience will be validated during token validation. + + Validation of the audience, mitigates forwarding attacks. For example, a site that receives a token, could not replay it to another side. + A forwarded token would contain the audience of the original site. + + + + Gets or sets a boolean to control if the issuer will be validated during token validation. + + + Validation of the issuer mitigates forwarding attacks that can occur when an + IdentityProvider represents multiple tenants and signs tokens with the same keys. + It is possible that a token issued for the same audience could be from a different tenant. For example an application could accept users from + contoso.onmicrosoft.com but not fabrikam.onmicrosoft.com, both valid tenants. A application that accepts tokens from fabrikam could forward them + to the application that accepts tokens for contoso. + + + + + Gets or sets a boolean to control if the lifetime will be validated during token validation. + + + + + Gets or sets a boolean that controls if validation of the that signed the securityToken is called. + + It is possible for tokens to contain the public key needed to check the signature. For example, X509Data can be hydrated into an X509Certificate, + which can be used to validate the signature. In these cases it is important to validate the SigningKey that was used to validate the signature. + + + + Gets or sets a boolean to control if the token replay will be validated during token validation. + + + + + Gets or sets a string that represents a valid audience that will be used to check against the token's audience. + + + + + Gets or sets the that contains valid audiences that will be used to check against the token's audience. + + + + + Gets or sets a that represents a valid issuer that will be used to check against the token's issuer. + + + + + Gets or sets the that contains valid issuers that will be used to check against the token's issuer. + + + + + Generates unique IDs. + + + + + Creates a unique ID suitable for use in an xml:id field. The value is + not hard to guess but is unique. + + The unique ID. + + + + Creates a unique ID similar to that created by CreateNonRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The unique ID, with the given prefix. + + + + Creates a unique, random ID suitable for use in an xml:id field. The + value is hard to guess and unique. + + The unique ID. + + + + Creates a unique, random ID similar to that created by CreateRandomId, + but instead of an underscore, the supplied prefix is used. + + The prefix to use. + The random URI. + + + + Creates a unique, random ID suitable for use as a URI. The value is + hard to guess and unique. The URI is in the urn:uuid: namespace. + + The random URI. + + + + Contains some utility methods. + + + + + A string with "empty" value. + + + + + A string with "null" value. + + + + + Creates a copy of the byte array. + + The resource array. + A copy of the byte array. + + + + Serializes the list of strings into string as follows: + 'str1','str2','str3' ... + + + The strings used to build a comma delimited string. + + + The single . + + + + + Returns whether the input string is https. + + The input string. + true if the input string is https; otherwise, false. + + + + Returns whether the input uri is https. + + . + true if the input uri is https; otherwise, false. + + + + Compares two byte arrays for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + + true if the bytes are equal, false otherwise. + + + + + Compares two byte arrays for equality. Hash size is fixed normally it is 32 bytes. + The attempt here is to take the same time if an attacker shortens the signature OR changes some of the signed contents. + + + One set of bytes to compare. + + + The other set of bytes to compare with. + + length of array to check + + true if the bytes are equal, false otherwise. + + + + + AudienceValidator + + + + + Determines if the audiences found in a are valid. + + The audiences found in the . + The being validated. + required for validation. + If 'vaidationParameters' is null. + If 'audiences' is null and is true. + If is null or whitespace and is null. + If none of the 'audiences' matched either or one of . + An EXACT match is required. + + + + Determines if an issuer found in a is valid. + + The issuer to validate + The that is being validated. + required for validation. + The issuer to use when creating the "Claim"(s) in a "ClaimsIdentity". + If 'vaidationParameters' is null. + If 'issuer' is null or whitespace and is true. + If is null or whitespace and is null. + If 'issuer' failed to matched either or one of . + An EXACT match is required. + + + + Validates the that signed a . + + The that signed the . + The being validated. + required for validation. + if 'securityKey' is null and ValidateIssuerSigningKey is true. + if 'securityToken' is null and ValidateIssuerSigningKey is true. + if 'vaidationParameters' is null. + + + + Validates the lifetime of a . + + The 'notBefore' time found in the . + The 'expiration' time found in the . + The being validated. + required for validation. + If 'vaidationParameters' is null. + If 'expires.HasValue' is false and is true. + If 'notBefore' is > 'expires'. + If 'notBefore' is > DateTime.UtcNow. + If 'expires' is < DateTime.UtcNow. + All time comparisons apply . + + + + Validates if a token has been replayed. + + When does the security token expire. + The being validated. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + Validates if a token has been replayed. + + The being validated. + When does the security token expire. + required for validation. + If 'securityToken' is null or whitespace. + If 'validationParameters' is null or whitespace. + If is not null and expirationTime.HasValue is false. When a TokenReplayCache is set, tokens require an expiration time. + If the 'securityToken' is found in the cache. + If the 'securityToken' could not be added to the . + + + + An designed to construct based on a x509 certificate. + + + + + Designed to construct based on a x509 certificate. + + A + + will be used as the key wrap algorithm + will be used as the data encryption algorithm + + if 'certificate' is null. + + + + Designed to construct based on the x509 certificate, a key wrap algorithm, and data encryption algorithm. + + A + A key wrap algorithm + Data encryption algorithm + if 'certificate' is null. + if 'keyWrapAlgorithm' is null or empty. + if 'dataEncryptionAlgorithm' is null or empty. + + + + Gets the used by this instance. + + + + + Security key that allows access to cert + + + + + Instantiates a using a + + The cert to use. + + + + Gets the key size. + + + + + Gets the X5t of this . + + + + + Returns the private key from the . + + + + + Gets the public key from the . + + + + + Gets a bool indicating if a private key exists. + + true if it has a private key; otherwise, false. + + + + Gets an enum indicating if a private key exists. + + 'Exists' if private key exists for sure; 'DoesNotExist' if private key doesn't exist for sure; 'Unknown' if we cannot determine. + + + + Gets the . + + + + + Returns a bool indicating if this key is equivalent to another key. + + true if the keys are equal; otherwise, false. + + + + Returns an int hash code. + + An int hash code + + + + Defines the , algorithm and digest for digital signatures. + + + + + Initializes a new instance of the class. + + that will be used for signing. + Algorithm will be set to . + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + + + + Initializes a new instance of the class. + + A that will be used for signing. + The signature algorithm to apply. + the 'digest method' if needed may be implied from the algorithm. For example implies Sha256. + if 'certificate' is null. + if 'algorithm' is null or empty. + + + + Gets the used by this instance. + + + + diff --git a/Bin/Microsoft.Owin.xml b/Bin/Microsoft.Owin.xml new file mode 100644 index 000000000..4380dc571 --- /dev/null +++ b/Bin/Microsoft.Owin.xml @@ -0,0 +1,3316 @@ + + + + Microsoft.Owin + + + + + Extension methods for . + + + + + Inserts a middleware into the OWIN pipeline. + + The middleware type + + Any additional arguments for the middleware constructor + + + + + Inserts into the OWIN pipeline a middleware which does not have a next middleware reference. + + + An app that handles all requests + + + + Inserts a middleware into the OWIN pipeline. + + + An app that handles the request or calls the given next Func + + + + + An ordered list of known Asp.Net integrated pipeline stages. More details on the ASP.NET integrated pipeline can be found at http://msdn.microsoft.com/en-us/library/system.web.httpapplication.aspx + + + + + Corresponds to the AuthenticateRequest stage of the ASP.NET integrated pipeline. + + + + + Corresponds to the PostAuthenticateRequest stage of the ASP.NET integrated pipeline. + + + + + Corresponds to the AuthorizeRequest stage of the ASP.NET integrated pipeline. + + + + + Corresponds to the PostAuthorizeRequest stage of the ASP.NET integrated pipeline. + + + + + Corresponds to the ResolveRequestCache stage of the ASP.NET integrated pipeline. + + + + + Corresponds to the PostResolveRequestCache stage of the ASP.NET integrated pipeline. + + + + + Corresponds to the MapRequestHandler stage of the ASP.NET integrated pipeline. + + + + + Corresponds to the PostMapRequestHandler stage of the ASP.NET integrated pipeline. + + + + + Corresponds to the AcquireRequestState stage of the ASP.NET integrated pipeline. + + + + + Corresponds to the PostAcquireRequestState stage of the ASP.NET integrated pipeline. + + + + + Corresponds to the PreRequestHandlerExecute stage of the ASP.NET integrated pipeline. + + + + + Extension methods for the MapMiddleware + + + + + If the request path starts with the given pathMatch, execute the app configured via configuration parameter instead of + continuing to the next component in the pipeline. + + + The path to match + The branch to take for positive path matches + + + + + If the request path starts with the given pathMatch, execute the app configured via configuration parameter instead of + continuing to the next component in the pipeline. + + + The path to match + The branch to take for positive path matches + + + + + Extension methods for the MapWhenMiddleware + + + + + Branches the request pipeline based on the result of the given predicate. + + + Invoked with the request environment to determine if the branch should be taken + Configures a branch to take + + + + + Branches the request pipeline based on the async result of the given predicate. + + + Invoked asynchronously with the request environment to determine if the branch should be taken + Configures a branch to take + + + + + Represents a middleware for executing in-line function middleware. + + + + + Initializes a new instance of the class. + + The pointer to next middleware. + A function that handles all requests. + + + + Initializes a new instance of the class. + + The pointer to next middleware. + A function that handles the request or calls the given next function. + + + + Invokes the handler for processing the request. + + The OWIN context. + The object that represents the request operation. + + + + Extension methods used to indicate at which stage in the integrated pipeline prior middleware should run. + + + + + Call after other middleware to specify when they should run in the integrated pipeline. + + The IAppBuilder. + The name of the integrated pipeline in which to run. + The original IAppBuilder for chaining. + + + + Call after other middleware to specify when they should run in the integrated pipeline. + + The IAppBuilder. + The stage of the integrated pipeline in which to run. + The original IAppBuilder for chaining. + + + + Contains the parsed form values. + + + + + Initializes a new instance of the class. + + The store for the form. + + + + Represents a wrapper for owin.RequestHeaders and owin.ResponseHeaders. + + + + + Initializes a new instance of the class. + + The underlying data store. + + + + Gets an that contains the keys in the ;. + + An that contains the keys in the . + + + + + + + + + Gets the number of elements contained in the ;. + + The number of elements contained in the . + + + + Gets a value that indicates whether the is in read-only mode. + + true if the is in read-only mode; otherwise, false. + + + + Get or sets the associated value from the collection as a single string. + + The header name. + the associated value from the collection as a single string or null if the key is not present. + + + + Throws KeyNotFoundException if the key is not present. + + The header name. + + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Returns an enumerator that iterates through a collection. + + An object that can be used to iterate through the collection. + + + + Get the associated value from the collection as a single string. + + The header name. + the associated value from the collection as a single string or null if the key is not present. + + + + Get the associated values from the collection without modification. + + The header name. + the associated value from the collection without modification, or null if the key is not present. + + + + Get the associated values from the collection separated into individual values. + Quoted values will not be split, and the quotes will be removed. + + The header name. + the associated values from the collection separated into individual values, or null if the key is not present. + + + + Add a new value. Appends to the header if already present + + The header name. + The header value. + + + + Add new values. Each item remains a separate array entry. + + The header name. + The header values. + + + + Quotes any values containing comas, and then coma joins all of the values with any existing values. + + The header name. + The header values. + + + + Sets a specific header value. + + The header name. + The header value. + + + + Sets the specified header values without modification. + + The header name. + The header values. + + + + Quotes any values containing comas, and then coma joins all of the values. + + The header name. + The header values. + + + + Adds the given header and values to the collection. + + The header name. + The header values. + + + + Determines whether the contains a specific key. + + The key. + true if the contains a specific key; otherwise, false. + + + + Removes the given header from the collection. + + The header name. + true if the specified object was removed from the collection; otherwise, false. + + + + Retrieves a value from the dictionary. + + The header name. + The value. + true if the contains the key; otherwise, false. + + + + Adds a new list of items to the collection. + + The item to add. + + + + Clears the entire list of objects. + + + + + Returns a value indicating whether the specified object occurs within this collection. + + The item. + true if the specified object occurs within this collection; otherwise, false. + + + + Copies the elements to a one-dimensional Array instance at the specified index. + + The one-dimensional Array that is the destination of the specified objects copied from the . + The zero-based index in at which copying begins. + + + + Removes the given item from the the collection. + + The item. + true if the specified object was removed from the collection; otherwise, false. + + + + Represents the host portion of a Uri can be used to construct Uri's properly formatted and encoded for use in + HTTP headers. + + + + + Creates a new HostString without modification. The value should be Unicode rather than punycode, and may have a port. + IPv4 and IPv6 addresses are also allowed, and also may have ports. + + + + + + Returns the original value from the constructor. + + + + + Returns the value as normalized by ToUriComponent(). + + + + + + Returns the value properly formatted and encoded for use in a URI in a HTTP header. + Any Unicode is converted to punycode. IPv6 addresses will have brackets added if they are missing. + + + + + + Creates a new HostString from the given uri component. + Any punycode will be converted to Unicode. + + + + + + + Creates a new HostString from the host and port of the give Uri instance. + Punycode will be converted to Unicode. + + + + + + + Compares the equality of the Value property, ignoring case. + + + + + + + Compares against the given object only if it is a HostString. + + + + + + + Gets a hash code for the value. + + + + + + Compares the two instances for equality. + + + + + + + + Compares the two instances for inequality. + + + + + + + + Contains the parsed form values. + + + + + Represents a wrapper for owin.RequestHeaders and owin.ResponseHeaders. + + + + + Get or sets the associated value from the collection as a single string. + + The header name. + the associated value from the collection as a single string or null if the key is not present. + + + + Get the associated values from the collection separated into individual values. + Quoted values will not be split, and the quotes will be removed. + + The header name. + the associated values from the collection separated into individual values, or null if the key is not present. + + + + Add a new value. Appends to the header if already present + + The header name. + The header value. + + + + Add new values. Each item remains a separate array entry. + + The header name. + The header values. + + + + Quotes any values containing comas, and then coma joins all of the values with any existing values. + + The header name. + The header values. + + + + Sets a specific header value. + + The header name. + The header value. + + + + Sets the specified header values without modification. + + The header name. + The header values. + + + + Quotes any values containing comas, and then coma joins all of the values. + + The header name. + The header values. + + + + An implementation of ICookieManager that writes directly to IOwinContext.Response.Cookies. + + + + + Read a cookie with the given name from the request. + + + + + + + + Appends a new response cookie to the Set-Cookie header. + + + + + + + + + Deletes the cookie with the given key by appending an expired cookie. + + + + + + + + This handles cookies that are limited by per cookie length. It breaks down long cookies for responses, and reassembles them + from requests. + + + + + Creates a new instance of ChunkingCookieManager. + + + + + The maximum size of cookie to send back to the client. If a cookie exceeds this size it will be broken down into multiple + cookies. Set this value to null to disable this behavior. The default is 4090 characters, which is supported by all + common browsers. + + Note that browsers may also have limits on the total size of all cookies per domain, and on the number of cookies per domain. + + + + + Throw if not all chunks of a cookie are available on a request for re-assembly. + + + + + Get the reassembled cookie. Non chunked cookies are returned normally. + Cookies with missing chunks just have their "chunks:XX" header returned. + + + + The reassembled cookie, if any, or null. + + + + Appends a new response cookie to the Set-Cookie header. If the cookie is larger than the given size limit + then it will be broken down into multiple cookies as follows: + Set-Cookie: CookieName=chunks:3; path=/ + Set-Cookie: CookieNameC1=Segment1; path=/ + Set-Cookie: CookieNameC2=Segment2; path=/ + Set-Cookie: CookieNameC3=Segment3; path=/ + + + + + + + + + Deletes the cookie with the given key by setting an expired state. If a matching chunked cookie exists on + the request, delete each chunk. + + + + + + + + An abstraction for reading request cookies and writing response cookies. + + + + + Read a cookie with the given name from the request. + + + + + + + + Append a cookie to the response. + + + + + + + + + Append a delete cookie to the response. + + + + + + + + Abstracts the system clock to facilitate testing. + + + + + Retrieves the current system time in UTC. + + + + + Provides access to the normal system clock. + + + + + Retrieves the current system time in UTC. + + + + + Response generation utilities. + + + + + Append the given query to the uri. + + The base uri. + The query string to append, if any. + The combine result. + + + + Append the given query key and value to the uri. + + The base uri. + The name of the query key. + The query value. + The combine result. + + + + Append the given query keys and values to the uri. + + The base uri. + A collection of name value query pairs to append. + The combine result. + + + + Converts between an OwinMiddlware and an . + + + + + + + + + + + + + + + + + + Transitions between and OwinMiddleware. + + + + + + + + + + + + + OWIN environment dictionary which stores state information about the request, response and relevant server state. + + + + + Adds adapters between and OwinMiddleware. + + + + + Adds adapters between and OwinMiddleware. + + + + + + This wraps OWIN environment dictionary and provides strongly typed accessors. + + + + + Gets a wrapper exposing request specific properties. + + A wrapper exposing request specific properties. + + + + Gets a wrapper exposing response specific properties. + + A wrapper exposing response specific properties. + + + + Gets the Authentication middleware functionality available on the current request. + + The authentication middleware functionality available on the current request. + + + + Gets the OWIN environment. + + The OWIN environment. + + + + Gets or sets the host.TraceOutput environment value. + + The host.TraceOutput TextWriter. + + + + Gets a value from the OWIN environment, or returns default(T) if not present. + + The type of the value. + The key of the value to get. + The value with the specified key or the default(T) if not present. + + + + Sets the given key and value in the OWIN environment. + + The type of the value. + The key of the value to set. + The value to set. + This instance. + + + + This wraps OWIN environment dictionary and provides strongly typed accessors. + + + + + Gets the OWIN environment. + + The OWIN environment. + + + + Gets the request context. + + The request context. + + + + Gets or set the HTTP method. + + The HTTP method. + + + + Gets or set the HTTP request scheme from owin.RequestScheme. + + The HTTP request scheme from owin.RequestScheme. + + + + Returns true if the owin.RequestScheme is https. + + true if this request is using https; otherwise, false. + + + + Gets or set the Host header. May include the port. + + The Host header. + + + + Gets or set the owin.RequestPathBase. + + The owin.RequestPathBase. + + + + Gets or set the request path from owin.RequestPath. + + The request path from owin.RequestPath. + + + + Gets or set the query string from owin.RequestQueryString. + + The query string from owin.RequestQueryString. + + + + Gets the query value collection parsed from owin.RequestQueryString. + + The query value collection parsed from owin.RequestQueryString. + + + + Gets the uniform resource identifier (URI) associated with the request. + + The uniform resource identifier (URI) associated with the request. + + + + Gets or set the owin.RequestProtocol. + + The owin.RequestProtocol. + + + + Gets the request headers. + + The request headers. + + + + Gets the collection of Cookies for this request. + + The collection of Cookies for this request. + + + + Gets or sets the Content-Type header. + + The Content-Type header. + + + + Gets or sets the Cache-Control header. + + The Cache-Control header. + + + + Gets or sets the Media-Type header. + + The Media-Type header. + + + + Gets or set the Accept header. + + The Accept header. + + + + Gets or set the owin.RequestBody Stream. + + The owin.RequestBody Stream. + + + + Gets or sets the cancellation token for the request. + + The cancellation token for the request. + + + + Gets or set the server.LocalIpAddress. + + The server.LocalIpAddress. + + + + Gets or set the server.LocalPort. + + The server.LocalPort. + + + + Gets or set the server.RemoteIpAddress. + + The server.RemoteIpAddress. + + + + Gets or set the server.RemotePort. + + The server.RemotePort. + + + + Gets or set the server.User. + + The server.User. + + + + Asynchronously reads and parses the request body as a form. + + The parsed form data. + + + + Gets a value from the OWIN environment, or returns default(T) if not present. + + The type of the value. + The key of the value to get. + The value with the specified key or the default(T) if not present. + + + + Sets the given key and value in the OWIN environment. + + The type of the value. + The key of the value to set. + The value to set. + This instance. + + + + This wraps OWIN environment dictionary and provides strongly typed accessors. + + + + + Gets the OWIN environment. + + The OWIN environment. + + + + Gets the request context. + + The request context. + + + + Gets or sets the optional owin.ResponseStatusCode. + + The optional owin.ResponseStatusCode, or 200 if not set. + + + + Gets or sets the the optional owin.ResponseReasonPhrase. + + The the optional owin.ResponseReasonPhrase. + + + + Gets or sets the owin.ResponseProtocol. + + The owin.ResponseProtocol. + + + + Gets the response header collection. + + The response header collection. + + + + Gets a collection used to manipulate the Set-Cookie header. + + A collection used to manipulate the Set-Cookie header. + + + + Gets or sets the Content-Length header. + + The Content-Length header. + + + + Gets or sets the Content-Type header. + + The Content-Type header. + + + + Gets or sets the Expires header. + + The Expires header. + + + + Gets or sets the E-Tag header. + + The E-Tag header. + + + + Gets or sets the owin.ResponseBody Stream. + + The owin.ResponseBody Stream. + + + + Registers for an event that fires when the response headers are sent. + + The callback method. + The callback state. + + + + Sets a 302 response status code and the Location header. + + The location where to redirect the client. + + + + Writes the given text to the response body stream using UTF-8. + + The response data. + + + + Writes the given bytes to the response body stream. + + The response data. + + + + Writes the given bytes to the response body stream. + + The response data. + The zero-based byte offset in the parameter at which to begin copying bytes. + The number of bytes to write. + + + + Asynchronously writes the given text to the response body stream using UTF-8. + + The response data. + A Task tracking the state of the write operation. + + + + Asynchronously writes the given text to the response body stream using UTF-8. + + The response data. + A token used to indicate cancellation. + A Task tracking the state of the write operation. + + + + Asynchronously writes the given bytes to the response body stream. + + The response data. + A Task tracking the state of the write operation. + + + + Asynchronously writes the given bytes to the response body stream. + + The response data. + A token used to indicate cancellation. + A Task tracking the state of the write operation. + + + + Asynchronously writes the given bytes to the response body stream. + + The response data. + The zero-based byte offset in the parameter at which to begin copying bytes. + The number of bytes to write. + A token used to indicate cancellation. + A Task tracking the state of the write operation. + + + + Gets a value from the OWIN environment, or returns default(T) if not present. + + The type of the value. + The key of the value to get. + The value with the specified key or the default(T) if not present. + + + + Sets the given key and value in the OWIN environment. + + The type of the value. + The key of the value to set. + The value to set. + This instance. + + + + Accessors for headers, query, forms, etc. + + + + + Get the associated value from the collection. Multiple values will be merged. + Returns null if the key is not present. + + + + + + + Get the associated value from the collection. Multiple values will be merged. + Returns null if the key is not present. + + + + + + + Get the associated values from the collection in their original format. + Returns null if the key is not present. + + + + + + + Used to mark which class in an assembly should be used for automatic startup. + + + + + Initializes a new instance of the class + + The startup class + + + + Initializes a new instance of the class + + A non-default configuration, e.g. staging. + The startup class + + + + Initializes a new instance of the class + + The startup class + Specifies which method to call + + + + Initializes a new instance of the class + + A non-default configuration, e.g. staging. + The startup class + Specifies which method to call + + + + A non-default configuration if any. e.g. Staging. + + + + + The startup class + + + + + The name of the configuration method + + + + + Used to create path based branches in your application pipeline. + The owin.RequestPathBase is not included in the evaluation, only owin.RequestPath. + Matching paths have the matching piece removed from owin.RequestPath and added to the owin.RequestPathBase. + + + + + Initializes a new instance of the class + + The normal pipeline taken for a negative match + + + + + Process an individual request. + + + + + + + Options for the Map middleware + + + + + The path to match + + + + + The branch taken for a positive match + + + + + Determines if the request should take a specific branch of the pipeline by passing the environment + to a user defined callback. + + + + + Initializes a new instance of the class + + The normal application pipeline + + + + + Process an individual request. + + + + + + + Options for the MapWhen middleware + + + + + The user callback that determines if the branch should be taken + + + + + The async user callback that determines if the branch should be taken + + + + + The branch taken for a positive match + + + + + This wraps OWIN environment dictionary and provides strongly typed accessors. + + + + + Create a new context with only request and response header collections. + + + + + Create a new wrapper. + + OWIN environment dictionary which stores state information about the request, response and relevant server state. + + + + Gets a wrapper exposing request specific properties. + + A wrapper exposing request specific properties. + + + + Gets a wrapper exposing response specific properties. + + A wrapper exposing response specific properties. + + + + Gets the Authentication middleware functionality available on the current request. + + The authentication middleware functionality available on the current request. + + + + Gets the OWIN environment. + + The OWIN environment. + + + + Gets or sets the host.TraceOutput environment value. + + The host.TraceOutput TextWriter. + + + + Gets a value from the OWIN environment, or returns default(T) if not present. + + The type of the value. + The key of the value to get. + The value with the specified key or the default(T) if not present. + + + + Sets the given key and value in the OWIN environment. + + The type of the value. + The key of the value to set. + The value to set. + This instance. + + + + Provides correct escaping for Path and PathBase values when needed to reconstruct a request or redirect URI string + + + + + Represents the empty path. This field is read-only. + + + + + Initialize the path string with a given value. This value must be in un-escaped format. Use + PathString.FromUriComponent(value) if you have a path value which is in an escaped format. + + The unescaped path to be assigned to the Value property. + + + + The unescaped path value + + + + + True if the path is not empty + + + + + Provides the path string escaped in a way which is correct for combining into the URI representation. + + The escaped path value + + + + Provides the path string escaped in a way which is correct for combining into the URI representation. + + The escaped path value + + + + Returns an PathString given the path as it is escaped in the URI format. The string MUST NOT contain any + value that is not a path. + + The escaped path as it appears in the URI format. + The resulting PathString + + + + Returns an PathString given the path as from a Uri object. Relative Uri objects are not supported. + + The Uri object + The resulting PathString + + + + Checks if this instance starts with or exactly matches the other instance. Only full segments are matched. + + + + + + + Checks if this instance starts with or exactly matches the other instance. Only full segments are matched. + + + Any remaining segments from this instance not included in the other instance. + + + + + Adds two PathString instances into a combined PathString value. + + The combined PathString value + + + + Combines a PathString and QueryString into the joined URI formatted string value. + + The joined URI formatted string value + + + + Compares this PathString value to another value. The default comparison is StringComparison.OrdinalIgnoreCase. + + The second PathString for comparison. + True if both PathString values are equal + + + + Compares this PathString value to another value using a specific StringComparison type + + The second PathString for comparison + The StringComparison type to use + True if both PathString values are equal + + + + Compares this PathString value to another value. The default comparison is StringComparison.OrdinalIgnoreCase. + + The second PathString for comparison. + True if both PathString values are equal + + + + Returns the hash code for the PathString value. The hash code is provided by the OrdinalIgnoreCase implementation. + + The hash code + + + + Operator call through to Equals + + The left parameter + The right parameter + True if both PathString values are equal + + + + Operator call through to Equals + + The left parameter + The right parameter + True if both PathString values are not equal + + + + Operator call through to Add + + The left parameter + The right parameter + The PathString combination of both values + + + + Operator call through to Add + + The left parameter + The right parameter + The PathString combination of both values + + + + Provides correct handling for QueryString value when needed to reconstruct a request or redirect URI string + + + + + Represents the empty query string. This field is read-only. + + + + + Initialize the query string with a given value. This value must be in escaped and delimited format without + a leading '?' character. + + The query string to be assigned to the Value property. + + + + Initialize a query string with a single given parameter name and value. The value is + + The unencoded parameter name + The unencoded parameter value + + + + The escaped query string without the leading '?' character + + + + + True if the query string is not empty + + + + + Provides the query string escaped in a way which is correct for combining into the URI representation. + A leading '?' character will be prepended unless the Value is null or empty. Characters which are potentially + dangerous are escaped. + + The query string value + + + + Provides the query string escaped in a way which is correct for combining into the URI representation. + A leading '?' character will be prepended unless the Value is null or empty. Characters which are potentially + dangerous are escaped. + + The query string value + + + + Returns an QueryString given the query as it is escaped in the URI format. The string MUST NOT contain any + value that is not a query. + + The escaped query as it appears in the URI format. + The resulting QueryString + + + + Returns an QueryString given the query as from a Uri object. Relative Uri objects are not supported. + + The Uri object + The resulting QueryString + + + + Indicates whether the current instance is equal to the other instance. + + + + + + + Indicates whether the current instance is equal to the other instance. + + + + + + + Returns the hash code for this instance. + + + + + + Compares the two instances for equality. + + + + + + + + Compares the two instances for inequality. + + + + + + + + Accessors for query, forms, etc. + + + + + Create a new wrapper + + + + + + Get the associated value from the collection. Multiple values will be merged. + Returns null if the key is not present. + + + + + + + Get the associated value from the collection. Multiple values will be merged. + Returns null if the key is not present. + + + + + + + Get the associated values from the collection in their original format. + Returns null if the key is not present. + + + + + + + + + + + + + + + + + + + A wrapper for the request Cookie header + + + + + Create a new wrapper + + + + + + Returns null rather than throwing KeyNotFoundException + + + + + + + + + + + + + + + + + + + A strongly-typed resource class, for looking up localized strings, etc. + + + + + Returns the cached ResourceManager instance used by this class. + + + + + Overrides the current thread's CurrentUICulture property for all + resource lookups using this strongly typed resource class. + + + + + Looks up a localized string similar to Conversion delegate must take one parameter.. + + + + + Looks up a localized string similar to The cookie key and options are larger than ChunksSize, leaving no room for data.. + + + + + Looks up a localized string similar to The chunked cookie is incomplete. Only {0} of the expected {1} chunks were found, totaling {2} characters. A client size limit may have been exceeded.. + + + + + Looks up a localized string similar to The type '{0}' does not match any known middleware pattern.. + + + + + Looks up a localized string similar to The OWIN key 'server.OnSendingHeaders' is not available for this request.. + + + + + Looks up a localized string similar to The class '{0}' does not have a constructor taking {1} arguments.. + + + + + Looks up a localized string similar to No conversion available between {0} and {1}.. + + + + + Looks up a localized string similar to The path must not end with a '/'. + + + + + Looks up a localized string similar to The path must start with a '/' followed by one or more characters.. + + + + + Looks up a localized string similar to The path is required. + + + + + Looks up a localized string similar to The query string must start with a '?' unless null or empty.. + + + + + A standard implementation of IAppBuilder + + + + + Initializes a new instance of the the type. + + + + + + + + + + + + Contains arbitrary properties which may added, examined, and modified by + components during the startup sequence. + + Returns . + + + + Adds a middleware node to the OWIN function pipeline. The middleware are + invoked in the order they are added: the first middleware passed to Use will + be the outermost function, and the last middleware passed to Use will be the + innermost. + + + The middleware parameter determines which behavior is being chained into the + pipeline. + + If the middleware given to Use is a Delegate, then it will be invoked with the "next app" in + the chain as the first parameter. If the delegate takes more than the single argument, + then the additional values must be provided to Use in the args array. + + If the middleware given to Use is a Type, then the public constructor will be + invoked with the "next app" in the chain as the first parameter. The resulting object + must have a public Invoke method. If the object has constructors which take more than + the single "next app" argument, then additional values may be provided in the args array. + + + Any additional args passed to Use will be passed as additional values, following the "next app" + parameter, when the OWIN call pipeline is build. + + They are passed as additional parameters if the middleware parameter is a Delegate, or as additional + constructor arguments if the middle parameter is a Type. + + + The IAppBuilder itself is returned. This enables you to chain your use statements together. + + + + + The New method creates a new instance of an IAppBuilder. This is needed to create + a tree structure in your processing, rather than a linear pipeline. The new instance share the + same Properties, but will be created with a new, empty middleware list. + + To create a tangent pipeline you would first call New, followed by several calls to Use on + the new builder, ending with a call to Build on the new builder. The return value from Build + will be the entry-point to your tangent pipeline. This entry-point may now be added to the + main pipeline as an argument to a switching middleware, which will either call the tangent + pipeline or the "next app", based on something in the request. + + That said - all of that work is typically hidden by a middleware like Map, which will do that + for you. + + The new instance of the IAppBuilder implementation + + + + The Build is called at the point when all of the middleware should be chained + together. This is typically done by the hosting component which created the app builder, + and does not need to be called by the startup method if the IAppBuilder is passed in. + + + The Type argument indicates which calling convention should be returned, and + is typically typeof() for the OWIN + calling convention. + + + Returns an instance of the pipeline's entry point. This object may be safely cast to the + type which was provided + + + + + Simple object used by AppBuilder as seed OWIN callable if the + builder.Properties["builder.DefaultApp"] is not set + + + + + Extension methods for IAppBuilder. + + + + + The Build is called at the point when all of the middleware should be chained + together. May be called to build pipeline branches. + + + The request processing entry point for this section of the pipeline. + + + + The Build is called at the point when all of the middleware should be chained + together. May be called to build pipeline branches. + + The application signature. + + The request processing entry point for this section of the pipeline. + + + + Adds converters for adapting between disparate application signatures. + + + + + + + Adds converters for adapting between disparate application signatures. + + + + + + + + + A wrapper for the response Set-Cookie header + + + + + Create a new wrapper + + + + + + Add a new cookie and value + + + + + + + Add a new cookie + + + + + + + + Sets an expired cookie + + + + + + Sets an expired cookie + + + + + + + Indicates if the client should include a cookie on "same-site" or "cross-site" requests. + + + + + Indicates the client should send the cookie with every requests coming from any origin. + + + + + Indicates the client should send the cookie with "same-site" requests, and with "cross-site" top-level navigations. + + + + + Indicates the client should only send the cookie with "same-site" requests. + + + + + Acts as the return value from calls to the IAuthenticationManager's AuthenticeAsync methods. + + + + + Create an instance of the result object + + Assigned to Identity. May be null. + Assigned to Properties. Contains extra information carried along with the identity. + Assigned to Description. Contains information describing the authentication provider. + + + + Contains the claims that were authenticated by the given AuthenticationType. If the authentication + type was not successful the Identity property will be null. + + + + + Contains extra values that were provided with the original SignIn call. + + + + + Contains description properties for the middleware authentication type in general. Does not + vary per request. + + + + + Contains information describing an authentication provider. + + + + + Initializes a new instance of the class + + + + + Initializes a new instance of the class + + + + + + Contains metadata about the authentication provider. + + + + + Gets or sets the name used to reference the authentication middleware instance. + + + + + Gets or sets the display name for the authentication provider. + + + + + Exposes the security.Challenge environment value as a strong type. + + + + + Exposes the security.SignIn environment value as a strong type. + + + + + Exposes the security.SignOut environment value as a strong type. + + + + + + + + + + + + + + Dictionary used to store state values about the authentication session. + + + + + Initializes a new instance of the class + + + + + Initializes a new instance of the class + + + + + + State values about the authentication session. + + + + + Gets or sets whether the authentication session is persisted across multiple requests. + + + + + Gets or sets the full path or absolute URI to be used as an http redirect response value. + + + + + Gets or sets the time at which the authentication ticket was issued. + + + + + Gets or sets the time at which the authentication ticket expires. + + + + + Gets or sets if refreshing the authentication session should be allowed. + + + + + Exposes the security.Challenge environment value as a strong type. + + + + + Initializes a new instance of the class + + + + + + + List of the authentication types that should send a challenge in the response. + + + + + Dictionary used to store state values about the authentication session. + + + + + Exposes the security.SignIn environment value as a strong type. + + + + + Initializes a new instance of the class. + + + + + + + Initializes a new instance of the class. + + + + + + + The identity associated with the user sign in. + + + + + The security principal associated with the user sign in. + + + + + Dictionary used to store state values about the authentication session. + + + + + Exposes the security.SignOut and security.SignOutProperties environment values as a strong type. + + + + + Initializes a new instance of the class + + + + + + Initializes a new instance of the class + + + + + + + List of the authentication types that should be revoked on sign out. + + + + + Dictionary used to store state values about the authentication session. + + + + + Used to interact with authentication middleware that have been chained in the pipeline + + + + + Returns the current user for the request + + + + + Exposes the security.Challenge environment value as a strong type. + + + + + Exposes the security.SignIn environment value as a strong type. + + + + + Exposes the security.SignOut environment value as a strong type. + + + + + Lists all of the description data provided by authentication middleware that have been chained + + The authentication descriptions + + + + Lists the description data of all of the authentication middleware which are true for a given predicate + + A function provided by the caller which returns true for descriptions that should be in the returned list + The authentication descriptions + + + + Call back through the middleware to ask for a specific form of authentication to be performed + on the current request + + Identifies which middleware should respond to the request + for authentication. This value is compared to the middleware's Options.AuthenticationType property. + Returns an object with the results of the authentication. The AuthenticationResult.Identity + may be null if authentication failed. Even if the Identity property is null, there may still be + AuthenticationResult.properties and AuthenticationResult.Description information returned. + + + + Called to perform any number of authentication mechanisms on the current request. + + Identifies one or more middleware which should attempt to respond + Returns the AuthenticationResult information from the middleware which responded. The + order is determined by the order the middleware are in the pipeline. Latest added is first in the list. + + + + Add information into the response environment that will cause the authentication middleware to challenge + the caller to authenticate. This also changes the status code of the response to 401. The nature of that + challenge varies greatly, and ranges from adding a response header or changing the 401 status code to + a 302 redirect. + + Additional arbitrary values which may be used by particular authentication types. + Identify which middleware should perform their alterations on the + response. If the authenticationTypes is null or empty, that means the + AuthenticationMode.Active middleware should perform their alterations on the response. + + + + Add information into the response environment that will cause the authentication middleware to challenge + the caller to authenticate. This also changes the status code of the response to 401. The nature of that + challenge varies greatly, and ranges from adding a response header or changing the 401 status code to + a 302 redirect. + + Identify which middleware should perform their alterations on the + response. If the authenticationTypes is null or empty, that means the + AuthenticationMode.Active middleware should perform their alterations on the response. + + + + Add information to the response environment that will cause the appropriate authentication middleware + to grant a claims-based identity to the recipient of the response. The exact mechanism of this may vary. + Examples include setting a cookie, to adding a fragment on the redirect url, or producing an OAuth2 + access code or token response. + + Contains additional properties the middleware are expected to persist along with + the claims. These values will be returned as the AuthenticateResult.properties collection when AuthenticateAsync + is called on subsequent requests. + Determines which claims are granted to the signed in user. The + ClaimsIdentity.AuthenticationType property is compared to the middleware's Options.AuthenticationType + value to determine which claims are granted by which middleware. The recommended use is to have a single + ClaimsIdentity which has the AuthenticationType matching a specific middleware. + + + + Add information to the response environment that will cause the appropriate authentication middleware + to grant a claims-based identity to the recipient of the response. The exact mechanism of this may vary. + Examples include setting a cookie, to adding a fragment on the redirect url, or producing an OAuth2 + access code or token response. + + Determines which claims are granted to the signed in user. The + ClaimsIdentity.AuthenticationType property is compared to the middleware's Options.AuthenticationType + value to determine which claims are granted by which middleware. The recommended use is to have a single + ClaimsIdentity which has the AuthenticationType matching a specific middleware. + + + + Add information to the response environment that will cause the appropriate authentication middleware + to revoke any claims identity associated the the caller. The exact method varies. + + Additional arbitrary values which may be used by particular authentication types. + Identifies which middleware should perform the work to sign out. + Multiple authentication types may be provided to clear out more than one cookie at a time, or to clear + cookies and redirect to an external single-sign out url. + + + + Add information to the response environment that will cause the appropriate authentication middleware + to revoke any claims identity associated the the caller. The exact method varies. + + Identifies which middleware should perform the work to sign out. + Multiple authentication types may be provided to clear out more than one cookie at a time, or to clear + cookies and redirect to an external single-sign out url. + + + + Logging extension methods for IAppBuilder. + + + + + Sets the server.LoggerFactory in the Properties collection. + + + + + + + Retrieves the server.LoggerFactory from the Properties collection. + + + + + + + Creates a new ILogger instance from the server.LoggerFactory in the Properties collection. + + + + + + + + Creates a new ILogger instance from the server.LoggerFactory in the Properties collection. + + + + + + + + Creates a new ILogger instance from the server.LoggerFactory in the Properties collection. + + + + + + + + Provides a default ILoggerFactory. + + + + + Provides a default ILoggerFactory based on System.Diagnostics.TraceSorce. + + + + + Provides an ILoggerFactory based on System.Diagnostics.TraceSource. + + + + + Initializes a new instance of the class. + + + Creates a factory named "Microsoft.Owin". + + + + + Initializes a new instance of the class. + + + + + + + Creates a new DiagnosticsLogger for the given component name. + + + + + + + A generic interface for logging. + + + + + Aggregates most logging patterns to a single method. This must be compatible with the Func representation in the OWIN environment. + + To check IsEnabled call WriteCore with only TraceEventType and check the return value, no event will be written. + + + + + + + + + + + Used to create logger instances of the given name. + + + + + Creates a new ILogger instance of the given name. + + + + + + + ILogger extension methods for common scenarios. + + + + + Checks if the given TraceEventType is enabled. + + + + + + + + Writes a verbose log message. + + + + + + + Writes an informational log message. + + + + + + + Writes a warning log message. + + + + + + + + Writes a warning log message. + + + + + + + + Writes an error log message. + + + + + + + Writes an error log message. + + + + + + + + Writes a critical log message. + + + + + + + Writes a critical log message. + + + + + + + + Contains the parts of an address. + + + + + Initializes a new instance. + + + + + + Initializes a new with the given parts. + + The scheme. + The host. + The port. + The path. + + + + Gets the internal dictionary for this collection. + + The internal dictionary for this collection. + + + + The uri scheme. + + + + + The uri host. + + + + + The uri port. + + + + + The uri path. + + + + + Creates a new + + A new + + + + Determines whether the specified object is equal to the current object. + + The other object. + true if the specified object is equal to the current object; otherwise, false. + + + + Determines whether the specified object is equal to the current object. + + The other object. + true if the specified object is equal to the current object; otherwise, false. + + + + Returns the hash code for this instance. + + The hash code for this instance. + + + + Determines whether two specified instances of are equal. + + The first object to compare. + The second object to compare. + true if left and right represent the same address; otherwise, false. + + + + Determines whether two specified instances of are not equal. + + The first object to compare. + The second object to compare. + true if left and right do not represent the same address; otherwise, false. + + + + Gets a specified key and value from the underlying dictionary. + + + The key. + + + + + Sets a specified key and value in the underlying dictionary. + + The key. + The value. + + + + + Wraps the host.Addresses list. + + + + + Initializes a new instance of the class. + + The address list to set to the collection. + + + + Gets the underlying address list. + + The underlying address list. + + + + Gets the number of elements in the collection. + + The number of elements in the collection. + + + + Gets the item with the specified index from the collection. + + The index. + The item with the specified index. + + + + Adds the specified address to the collection. + + The address to add to the collection. + + + + Gets the enumerator that iterates through the collection. + + The enumerator that can be used to iterate through the collection. + + + + Gets the enumerator that iterates through the collection. + + The enumerator that can be used to iterate through the collection. + + + + Creates a new empty instance of . + + A new empty instance of . + + + + Determines whether the current collection is equal to the specified collection. + + The other collection to compare to the current collection. + true if current collection is equal to the specified collection; otherwise, false. + + + + Determines whether the current collection is equal to the specified object. + + The object to compare to the current collection. + true if current collection is equal to the specified object; otherwise, false. + + + + Gets the hash code for this instance. + + The hash code for this instance. + + + + Determines whether the first collection is equal to the second collection. + + The first collection to compare. + The second collection to compare. + true if both collections are equal; otherwise, false. + + + + Determines whether the first collection is not equal to the second collection. + + The first collection to compare. + The second collection to compare. + true if both collections are not equal; otherwise, false. + + + + A wrapper for the IDictionary. + + + + + Initializes a new instance of the class. + + + + + + Gets or sets the string value for “owin.Version”. + + The string value for “owin.Version”. + + + + Gets or sets the function delegate for “builder.DefaultApp”. + + The function delegate for “builder.DefaultApp”. + + + + Gets or sets the action delegate for “builder.AddSignatureConversion”. + + The action delegate for “builder.AddSignatureConversion”. + + + + Gets or sets the string value for “host.AppName”. + + The string value for “host.AppName”. + + + + Gets or sets the text writer for “host.TraceOutput”. + + The text writer for “host.TraceOutput”. + + + + Gets or sets the cancellation token for “host.OnAppDisposing”. + + The cancellation token for “host.OnAppDisposing”. + + + + Gets or sets the address collection for “host.Addresses”. + + The address collection for “host.Addresses”. + + + + Gets or sets the list of “server.Capabilities”. + + The list of “server.Capabilities”. + + + + Gets the underlying dictionary for this instance. + + The underlying dictionary for this instance. + + + + Determines whether the current AppProperties is equal to the specified AppProperties. + + The other AppProperties to compare with the current instance. + true if the current AppProperties is equal to the specified AppProperties; otherwise, false. + + + + Determines whether the current AppProperties is equal to the specified object. + + The object to compare with the current instance. + true if the current AppProperties is equal to the specified object; otherwise, false. + + + + Returns the hash code for this instance. + + The hash code for this instance. + + + + Determines whether the first AppPProperties is equal to the second AppProperties. + + The first AppPropeties to compare. + The second AppPropeties to compare. + true if both AppProperties are equal; otherwise, false. + + + + Determines whether the first AppPProperties is not equal to the second AppProperties. + + The first AppPropeties to compare. + The second AppPropeties to compare. + true if both AppProperties are not equal; otherwise, false. + + + + Gets the value from the dictionary with the specified key. + + The type of the value. + The key of the value to get. + The value with the specified key. + + + + Sets the value with the specified key. + + The key of the value to set. + The value to set. + This instance. + + + + Represents the capabilities for the builder properties. + + + + + Initializes a new instance of the class. + + + + + + The underling IDictionary + + + + + Gets or sets the string value for "sendfile.Version" + + the string value for "sendfile.Version" + + + + Gets or sets the websocket version. + + The websocket version. + + + + Initializes a new instance of the class. + + A new instance of the class. + + + + Determines whether the current Capabilities instance is equal to the specified Capabilities. + + The other Capabilities to compare with the current instance. + true if the specified object is equal to the current object; otherwise, false. + + + + Determines whether the current Capabilities is equal to the specified object. + + The object to compare with the current instance. + true if the current Capabilities is equal to the specified object; otherwise, false. + + + + Returns the hash code for this instance. + + The hash code for this instance. + + + + Determines whether two specified instances of are equal. + + The first object to compare. + The second object to compare. + true if the two specified instances of are equal; otherwise, false. + + + + Determines whether two specified instances of are not equal. + + The first object to compare. + The second object to compare. + true if the two specified instances of are not equal; otherwise, false. + + + + Gets the value from the dictionary with the specified key. + + The type of the value. + The key of the value to get. + The value with the specified key. + + + + Sets the given key and value in the underlying dictionary. + + The key of the value to set. + The value to set. + This instance. + + + + Options used to create a new cookie. + + + + + Creates a default cookie with a path of '/'. + + + + + Gets or sets the domain to associate the cookie with. + + The domain to associate the cookie with. + + + + Gets or sets the cookie path. + + The cookie path. + + + + Gets or sets the expiration date and time for the cookie. + + The expiration date and time for the cookie. + + + + Gets or sets a value that indicates whether to transmit the cookie using Secure Sockets Layer (SSL)—that is, over HTTPS only. + + true to transmit the cookie only over an SSL connection (HTTPS); otherwise, false. + + + + Gets or sets a value that indicates whether a cookie is accessible by client-side script. + + true if a cookie is accessible by client-side script; otherwise, false. + + + + Gets or sets a value that indicates on which requests client should or should not send cookie back to the server. + Set to null to do not include SameSite attribute at all. + + SameSite attribute value or null if attribute must not be set. + + + + Provides helper methods for processing requests. + + + + + Parses an HTTP form body. + + The HTTP form body to parse. + The object containing the parsed HTTP form body. + + + + An abstract base class for a standard middleware pattern. + + + + + Instantiates the middleware with an optional pointer to the next component. + + + + + + The optional next component. + + + + + Process an individual request. + + + + + + + This wraps OWIN environment dictionary and provides strongly typed accessors. + + + + + Create a new context with only request and response header collections. + + + + + Create a new environment wrapper exposing request properties. + + OWIN environment dictionary which stores state information about the request, response and relevant server state. + + + + Gets the OWIN environment. + + The OWIN environment. + + + + Gets the request context. + + The request context. + + + + Gets or set the HTTP method. + + The HTTP method. + + + + Gets or set the HTTP request scheme from owin.RequestScheme. + + The HTTP request scheme from owin.RequestScheme. + + + + Returns true if the owin.RequestScheme is https. + + true if this request is using https; otherwise, false. + + + + Gets or set the Host header. May include the port. + + The Host header. + + + + Gets or set the owin.RequestPathBase. + + The owin.RequestPathBase. + + + + Gets or set the request path from owin.RequestPath. + + The request path from owin.RequestPath. + + + + Gets or set the query string from owin.RequestQueryString. + + The query string from owin.RequestQueryString. + + + + Gets the query value collection parsed from owin.RequestQueryString. + + The query value collection parsed from owin.RequestQueryString. + + + + Gets the uniform resource identifier (URI) associated with the request. + + The uniform resource identifier (URI) associated with the request. + + + + Gets or set the owin.RequestProtocol. + + The owin.RequestProtocol. + + + + Gets the request headers. + + The request headers. + + + + Gets the collection of Cookies for this request. + + The collection of Cookies for this request. + + + + Gets or sets the Content-Type header. + + The Content-Type header. + + + + Gets or sets the Cache-Control header. + + The Cache-Control header. + + + + Gets or sets the Media-Type header. + + The Media-Type header. + + + + Gets or set the Accept header. + + The Accept header. + + + + Gets or set the owin.RequestBody Stream. + + The owin.RequestBody Stream. + + + + Gets or sets the cancellation token for the request. + + The cancellation token for the request. + + + + Gets or set the server.LocalIpAddress. + + The server.LocalIpAddress. + + + + Gets or set the server.LocalPort. + + The server.LocalPort. + + + + Gets or set the server.RemoteIpAddress. + + The server.RemoteIpAddress. + + + + Gets or set the server.RemotePort. + + The server.RemotePort. + + + + Gets or set the server.User. + + The server.User. + + + + Asynchronously reads and parses the request body as a form. + + The parsed form data. + + + + Gets a value from the OWIN environment, or returns default(T) if not present. + + The type of the value. + The key of the value to get. + The value with the specified key or the default(T) if not present. + + + + Sets the given key and value in the OWIN environment. + + The type of the value. + The key of the value to set. + The value to set. + This instance. + + + + This wraps OWIN environment dictionary and provides strongly typed accessors. + + + + + Create a new context with only request and response header collections. + + + + + Creates a new environment wrapper exposing response properties. + + OWIN environment dictionary which stores state information about the request, response and relevant server state. + + + + Gets the OWIN environment. + + The OWIN environment. + + + + Gets the request context. + + The request context. + + + + Gets or sets the optional owin.ResponseStatusCode. + + The optional owin.ResponseStatusCode, or 200 if not set. + + + + Gets or sets the the optional owin.ResponseReasonPhrase. + + The the optional owin.ResponseReasonPhrase. + + + + Gets or sets the owin.ResponseProtocol. + + The owin.ResponseProtocol. + + + + Gets the response header collection. + + The response header collection. + + + + Gets a collection used to manipulate the Set-Cookie header. + + A collection used to manipulate the Set-Cookie header. + + + + Gets or sets the Content-Length header. + + The Content-Length header. + + + + Gets or sets the Content-Type header. + + The Content-Type header. + + + + Gets or sets the Expires header. + + The Expires header. + + + + Gets or sets the E-Tag header. + + The E-Tag header. + + + + Gets or sets the owin.ResponseBody Stream. + + The owin.ResponseBody Stream. + + + + Registers for an event that fires when the response headers are sent. + + The callback method. + The callback state. + + + + Sets a 302 response status code and the Location header. + + The location where to redirect the client. + + + + Writes the given text to the response body stream using UTF-8. + + The response data. + + + + Writes the given bytes to the response body stream. + + The response data. + + + + Writes the given bytes to the response body stream. + + The response data. + The zero-based byte offset in the parameter at which to begin copying bytes. + The number of bytes to write. + + + + Asynchronously writes the given text to the response body stream using UTF-8. + + The response data. + A Task tracking the state of the write operation. + + + + Asynchronously writes the given text to the response body stream using UTF-8. + + The response data. + A token used to indicate cancellation. + A Task tracking the state of the write operation. + + + + Asynchronously writes the given bytes to the response body stream. + + The response data. + A Task tracking the state of the write operation. + + + + Asynchronously writes the given bytes to the response body stream. + + The response data. + A token used to indicate cancellation. + A Task tracking the state of the write operation. + + + + Asynchronously writes the given bytes to the response body stream. + + The response data. + The zero-based byte offset in the parameter at which to begin copying bytes. + The number of bytes to write. + A token used to indicate cancellation. + A Task tracking the state of the write operation. + + + + Gets a value from the OWIN environment, or returns default(T) if not present. + + The type of the value. + The key of the value to get. + The value with the specified key or the default(T) if not present. + + + + Sets the given key and value in the OWIN environment. + + The type of the value. + The key of the value to set. + The value to set. + This instance. + + +