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.
+
+
+