Microsoft.Identity.Client Contains information of a single account. A user can be present in multiple directories and thus have multiple accounts. This information is used for token cache lookup and enforcing the user session on the STS authorize endpoint. Constructor Home account id in "uid.utid" format; can be null, for example when migrating the ADAL v3 cache UPN style , can be null Identity provider for this account, e.g. login.microsoftonline.com An identifier for an account in a specific tenant. Returned by Unique identifier for the account For Azure AD, the identifier is the concatenation of and separated by a dot. Contrary to what was happening in ADAL.NET, these two segments are no longer base64 encoded. For Azure AD, a string representation for a Guid which is the Object ID of the user owning the account in the tenant For Azure AD, a string representation for a Guid, which is the ID of the tenant where the account resides. Constructor of an AccountId Unique identifier for the account. A string representation for a GUID which is the ID of the user owning the account in the tenant A string representation for a GUID, which is the ID of the tenant where the account resides Two accounts are equal when their properties match GetHashCode implementation to match Textual description of an Base class for builders of token requests, which attempt to acquire a token based on the provided parameters Executes the Token request asynchronously, with a possibility of cancelling the asynchronous method. Cancellation token. See Authentication result containing a token for the requested scopes and parameters set in the builder Cancellation is not guaranteed, it is best effort. If the operation reaches a point of no return, e.g. tokens are acquired and written to the cache, the task will complete even if cancellation was requested. Do not rely on cancellation tokens for strong consistency. Executes the Token request asynchronously. Authentication result containing a token for the requested scopes and parameters set in the builder Specifies which scopes to request Scopes requested to access a protected API The builder to chain the .With methods Sets Extra Query Parameters for the query string in the HTTP authentication request This parameter will be appended as is to the query string in the HTTP authentication request to the authority as a string of segments of the form key=value separated by an ampersand character. The parameter can be null. The builder to chain the .With methods Sets claims in the query. Use when the AAD admin has enabled conditional access. Acquiring the token normally will result in a with the property set. Retry the token acquisition, and use this value in the method. See https://aka.ms/msal-exceptions for details A string with one or multiple claims. The builder to chain .With methods Sets Extra Query Parameters for the query string in the HTTP authentication request This parameter will be appended as is to the query string in the HTTP authentication request to the authority. The string needs to be properly URL-encdoded and ready to send as a string of segments of the form key=value separated by an ampersand character. Specific authority for which the token is requested. Passing a different value than configured at the application constructor narrows down the selection to a specific tenant. This does not change the configured value in the application. This is specific to applications managing several accounts (like a mail client with several mailboxes). See https://aka.ms/msal-net-application-configuration Uri for the authority. In the case when the authority URI is a known Azure AD URI, this setting needs to be consistent with what is declared in the application registration portal Whether the authority should be validated against the server metadata. The builder to chain the .With methods Adds a known Azure AD authority to the application to sign-in users from a single organization (single tenant application) specified by its tenant ID. See https://aka.ms/msal-net-application-configuration. Azure Cloud instance Guid of the tenant from which to sign-in users Whether the authority should be validated against the server metadata. The builder to chain the .With methods Adds a known Azure AD authority to the application to sign-in users from a single organization (single tenant application) described by its domain name. See https://aka.ms/msal-net-application-configuration. Uri to the Azure Cloud instance (for instance https://login.microsoftonline.com) domain name associated with the tenant from which to sign-in users Whether the authority should be validated against the server metadata. can also contain the string representation of a GUID (tenantId), or even common, organizations or consumers but in this case it's recommended to use another override ( and The builder to chain the .With methods Adds a known Azure AD authority to the application to sign-in users from a single organization (single tenant application) described by its cloud instance and its tenant ID. See https://aka.ms/msal-net-application-configuration. Instance of Azure Cloud (for instance Azure worldwide cloud, Azure German Cloud, US government ...) Tenant Id of the tenant from which to sign-in users Whether the authority should be validated against the server metadata. The builder to chain the .With methods Adds a known Azure AD authority to the application to sign-in users from a single organization (single tenant application) described by its cloud instance and its domain name or tenant ID. See https://aka.ms/msal-net-application-configuration. Instance of Azure Cloud (for instance Azure worldwide cloud, Azure German Cloud, US government ...) Domain name associated with the Azure AD tenant from which Whether the authority should be validated against the server metadata. to sign-in users. This can also be a guid The builder to chain the .With methods Adds a known Azure AD authority to the application to sign-in users specifying the cloud instance and the sign-in audience. See https://aka.ms/msal-net-application-configuration. Instance of Azure Cloud (for instance Azure worldwide cloud, Azure German Cloud, US government ...) Sign-in audience (one AAD organization, any work and school accounts, or any work and school accounts and Microsoft personal accounts Whether the authority should be validated against the server metadata. The builder to chain the .With methods Adds a known Azure AD authority to the application to sign-in users specifying the sign-in audience (the cloud being the Azure public cloud). See https://aka.ms/msal-net-application-configuration. Sign-in audience (one AAD organization, any work and school accounts, or any work and school accounts and Microsoft personal accounts Whether the authority should be validated against the server metadata. The builder to chain the .With methods Adds a known Authority corresponding to an ADFS server. See https://aka.ms/msal-net-adfs Authority URL for an ADFS server Whether the authority should be validated against the server metadata. MSAL.NET will only support ADFS 2019 or later. The builder to chain the .With methods Adds a known authority corresponding to an Azure AD B2C policy. See https://aka.ms/msal-net-b2c-specificities Azure AD B2C authority, including the B2C policy (for instance "https://fabrikamb2c.b2clogin.com/tfp/{Tenant}/{policy}) The builder to chain the .With methods Validates the parameters of the AcquireToken operation. Base class for parameter builders common to public client application and confidential client application token acquisition operations Base class for confidential client application token request builders Base class for public client application token request builders Builder for AcquireTokenByAuthorizationCode Builder for AcquireTokenByIntegratedWindowsAuth Specifies the username. Identifier of the user account for which to acquire a token with Integrated Windows authentication. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com The builder to chain the .With methods Parameter builder for the method. See https://aka.ms/msal-net-migration-adal2-msal2 Parameter builder for the operation. See https://aka.ms/msal-net-up Builder for AcquireTokenForClient (used in client credential flows, in daemon applications). See https://aka.ms/msal-net-client-credentials Specifies if the token request will ignore the access token in the application token cache and will attempt to acquire a new access token using client credentials. By default the token is taken from the application token cache (forceRefresh=false) If true, the request will ignore the token cache. The default is false The builder to chain the .With methods Specifies if the x5c claim (public key of the certificate) should be sent to the STS. Sending the x5x enables application developers to achieve easy certificate roll-over in Azure AD: this method will send the public certificate to Azure AD along with the token request, so that Azure AD can use it to validate the subject name based on a trusted issuer policy. This saves the application admin from the need to explicitly manage the certificate rollover (either via portal or powershell/CLI operation) true if the x5c should be sent. Otherwise false. The default is false The builder to chain the .With methods Builder for an Interactive token request. See https://aka.ms/msal-net-acquire-token-interactively Specifies if the public client application should used an embedded web browser or the system default browser If true, will use an embedded web browser, otherwise will attempt to use a system web browser. The default depends on the platform: false for Xamarin.iOS and Xamarin.Android, and true for .NET Framework, and UWP The builder to chain the .With methods Sets the , in order to avoid select account dialogs in the case the user is signed-in with several identities. This method is mutually exclusive with . If both are used, an exception will be thrown Identifier of the user. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com The builder to chain the .With methods Sets the account for which the token will be retrieved. This method is mutually exclusive with . If both are used, an exception will be thrown Account to use for the interactive token acquisition. See for ways to get an account The builder to chain the .With methods Scopes that you can request the end user to consent upfront, in addition to the scopes for the protected Web API for which you want to acquire a security token. The builder to chain the .With methods Specifies the what the interactive experience is for the user. Requested interactive experience. The default is The builder to chain the .With methods Sets a reference to the ViewController (if using Xamarin.iOS), Activity (if using Xamarin.Android) IWin32Window or IntPtr (if using .Net Framework). Used for invoking the browser. Mandatory only on Android. Can also be set via the PublicClientApplcation builder. The parent as an object, so that it can be used from shared NetStandard assemblies The builder to chain the .With methods Builder for AcquireTokenOnBehalfOf (OBO flow) See https://aka.ms/msal-net-on-behalf-of Specifies if the x5c claim (public key of the certificate) should be sent to the STS. Sending the x5c enables application developers to achieve easy certificate roll-over in Azure AD: this method will send the public certificate to Azure AD along with the token request, so that Azure AD can use it to validate the subject name based on a trusted issuer policy. This saves the application admin from the need to explicitly manage the certificate rollover (either via portal or powershell/CLI operation) true if the x5c should be sent. Otherwise false. The default is false The builder to chain the .With methods Parameter builder for the operation. See https://aka.ms/msal-net-acquiretokensilent Specifies if the client application should force refreshing the token from the user token cache. By default the token is taken from the the application token cache (forceRefresh=false) If true, ignore any access token in the user token cache and attempt to acquire new access token using the refresh token for the account if one is available. This can be useful in the case when the application developer wants to make sure that conditional access policies are applied immediately, rather than after the expiration of the access token. The default is false The builder to chain the .With methods Avoid un-necessarily setting to true true in order to avoid negatively affecting the performance of your application Parameters builder for the operation. See https://aka.ms/msal-net-device-code-flow Sets the Callback delegate so your application can interact with the user to direct them to authenticate (to a specific URL, with a code) callback containing information to show the user about how to authenticate and enter the device code. The builder to chain the .With methods NOTE: a few of the methods in AbstractAcquireTokenParameterBuilder (e.g. account) don't make sense here. Do we want to create a further base that contains ALL of the common methods, and then have another one including account, etc that are only used for AcquireToken? Sets the redirect URI to add to the Authorization request URL Address to return to upon receiving a response from the authority. Specifies which Microsoft accounts can be used for sign-in with a given application. See https://aka.ms/msal-net-application-configuration The sign-in audience was not specified Users with a Microsoft work or school account in my organization’s Azure AD tenant (i.e. single tenant). Maps to https://[instance]/[tenantId] Users with a personal Microsoft account, or a work or school account in any organization’s Azure AD tenant Maps to https://[instance]/common/ Users with a Microsoft work or school account in any organization’s Azure AD tenant (i.e. multi-tenant). Maps to https://[instance]/organizations/ Users with a personal Microsoft account. Maps to https://[instance]/consumers/ Uses a specific to communicate with the IdP. This enables advanced scenarios such as setting a proxy, or setting the Agent. HTTP client factory MSAL does not guarantee that it will not modify the HttpClient, for example by adding new headers. The builder to chain the .With methods Sets the logging callback. For details see https://aka.ms/msal-net-logging Desired level of logging. The default is LogLevel.Info Boolean used to enable/disable logging of Personally Identifiable Information (PII). PII logs are never written to default outputs like Console, Logcat or NSLog Default is set to false, which ensures that your application is compliant with GDPR. You can set it to true for advanced debugging requiring PII Flag to enable/disable logging to platform defaults. In Desktop/UWP, Event Tracing is used. In iOS, NSLog is used. In android, logcat is used. The default value is false The builder to chain the .With methods is thrown if the loggingCallback was already set on the application builder Sets the Debug logging callback to a default debug method which displays the level of the message and the message itself. For details see https://aka.ms/msal-net-logging Desired level of logging. The default is LogLevel.Info Boolean used to enable/disable logging of Personally Identifiable Information (PII). PII logs are never written to default outputs like Console, Logcat or NSLog Default is set to false, which ensures that your application is compliant with GDPR. You can set it to true for advanced debugging requiring PII Flag to enable/disable logging to platform defaults. In Desktop/UWP, Event Tracing is used. In iOS, NSLog is used. In android, logcat is used. The default value is false The builder to chain the .With methods is thrown if the loggingCallback was already set on the application builder by calling Sets the telemetry callback. For details see https://aka.ms/msal-net-telemetry Delegate to the callback sending the telemetry elaborated by the library to the telemetry endpoint of choice The builder to chain the .With methods is thrown if the method was already called on the application builder. Sets the Client ID of the application Client ID (also known as Application ID) of the application as registered in the application registration portal (https://aka.ms/msal-net-register-app) The builder to chain the .With methods Sets the redirect URI of the application. See https://aka.ms/msal-net-application-configuration URL where the STS will call back the application with the security token. This parameter is not required for desktop or UWP applications (as a default is used). It's not required for mobile applications that don't use a broker It is required for Web Apps The builder to chain the .With methods Sets the Tenant Id of the organization from which the application will let users sign-in. This is classically a GUID or a domain name. See https://aka.ms/msal-net-application-configuration. Although it is also possible to set to common, organizations, and consumers, it's recommended to use one of the overrides of tenant ID of the Azure AD tenant or a domain associated with this Azure AD tenant, in order to sign-in a user of a specific organization only The builder to chain the .With methods Sets the name of the calling application for telemetry purposes. The name of the application for telemetry purposes. Sets the version of the calling application for telemetry purposes. The version of the calling application for telemetry purposes. Sets application options, which can, for instance have been read from configuration files. See https://aka.ms/msal-net-application-configuration. Application options The builder to chain the .With methods Sets Extra Query Parameters for the query string in the HTTP authentication request This parameter will be appended as is to the query string in the HTTP authentication request to the authority as a string of segments of the form key=value separated by an ampersand character. The parameter can be null. The builder to chain the .With methods Sets Extra Query Parameters for the query string in the HTTP authentication request This parameter will be appended as is to the query string in the HTTP authentication request to the authority. The string needs to be properly URL-encdoded and ready to send as a string of segments of the form key=value separated by an ampersand character. Generate MATS telemetry aggregation events. TODO(mats): make this public when we're ready to turn it on. Adds a known authority to the application from its Uri. See https://aka.ms/msal-net-application-configuration. This constructor is mainly used for scenarios where the authority is not a standard Azure AD authority, nor an ADFS authority, nor an Azure AD B2C authority. For Azure AD, even in national and sovereign clouds, prefer using other overrides such as Uri of the authority Whether the authority should be validated against the server metadata. The builder to chain the .With methods Adds a known Azure AD authority to the application to sign-in users from a single organization (single tenant application) specified by its tenant ID. See https://aka.ms/msal-net-application-configuration. Azure Cloud instance Guid of the tenant from which to sign-in users Whether the authority should be validated against the server metadata. The builder to chain the .With methods Adds a known Azure AD authority to the application to sign-in users from a single organization (single tenant application) described by its domain name. See https://aka.ms/msal-net-application-configuration. Uri to the Azure Cloud instance (for instance https://login.microsoftonline.com) domain name associated with the tenant from which to sign-in users Whether the authority should be validated against the server metadata. can also contain the string representation of a GUID (tenantId), or even common, organizations or consumers but in this case it's recommended to use another override ( and The builder to chain the .With methods Adds a known Azure AD authority to the application to sign-in users from a single organization (single tenant application) described by its cloud instance and its tenant ID. See https://aka.ms/msal-net-application-configuration. Instance of Azure Cloud (for instance Azure worldwide cloud, Azure German Cloud, US government ...) Tenant Id of the tenant from which to sign-in users Whether the authority should be validated against the server metadata. The builder to chain the .With methods Adds a known Azure AD authority to the application to sign-in users from a single organization (single tenant application) described by its cloud instance and its domain name or tenant ID. See https://aka.ms/msal-net-application-configuration. Instance of Azure Cloud (for instance Azure worldwide cloud, Azure German Cloud, US government ...) Domain name associated with the Azure AD tenant from which Whether the authority should be validated against the server metadata. to sign-in users. This can also be a guid The builder to chain the .With methods Adds a known Azure AD authority to the application to sign-in users specifying the cloud instance and the sign-in audience. See https://aka.ms/msal-net-application-configuration. Instance of Azure Cloud (for instance Azure worldwide cloud, Azure German Cloud, US government ...) Sign-in audience (one AAD organization, any work and school accounts, or any work and school accounts and Microsoft personal accounts Whether the authority should be validated against the server metadata. The builder to chain the .With methods Adds a known Azure AD authority to the application to sign-in users specifying the sign-in audience (the cloud being the Azure public cloud). See https://aka.ms/msal-net-application-configuration. Sign-in audience (one AAD organization, any work and school accounts, or any work and school accounts and Microsoft personal accounts Whether the authority should be validated against the server metadata. The builder to chain the .With methods Adds a known Azure AD authority to the application to sign-in users specifying the full authority Uri. See https://aka.ms/msal-net-application-configuration. URL of the security token service (STS) from which MSAL.NET will acquire the tokens. Usual authorities endpoints for the Azure public Cloud are: https://login.microsoftonline.com/tenant/ where tenant is the tenant ID of the Azure AD tenant or a domain associated with this Azure AD tenant, in order to sign-in users of a specific organization only https://login.microsoftonline.com/common/ to sign-in users with any work and school accounts or Microsoft personal account https://login.microsoftonline.com/organizations/ to sign-in users with any work and school accounts https://login.microsoftonline.com/consumers/ to sign-in users with only personal Microsoft accounts (live) Note that this setting needs to be consistent with what is declared in the application registration portal Whether the authority should be validated against the server metadata. The builder to chain the .With methods Adds a known Authority corresponding to an ADFS server. See https://aka.ms/msal-net-adfs Authority URL for an ADFS server Whether the authority should be validated against the server metadata. MSAL.NET will only support ADFS 2019 or later. The builder to chain the .With methods Adds a known authority corresponding to an Azure AD B2C policy. See https://aka.ms/msal-net-b2c-specificities Azure AD B2C authority, including the B2C policy (for instance "https://fabrikamb2c.b2clogin.com/tfp/{Tenant}/{policy}) The builder to chain the .With methods Should _not_ go in the interface, only for builder usage while determining authorities with ApplicationOptions Should _not_ go in the interface, only for builder usage while determining authorities with ApplicationOptions Should _not_ go in the interface, only for builder usage while determining authorities with ApplicationOptions Base class for options objects with string values loadable from a configuration file (for instance a JSON file, as in an asp.net configuration scenario) See https://aka.ms/msal-net-application-configuration See also derived classes and Client ID (also known as App ID) of the application as registered in the application registration portal (https://aka.ms/msal-net-register-app) Tenant from which the application will allow users to sign it. This can be: a domain associated with a tenant, a guid (tenant id), or a meta-tenant (e.g. consumers). This property is mutually exclusive with . If both are provided, an exception will be thrown. The name of the property was chosen to ensure compatibility with AzureAdOptions in ASP.NET Core configuration files (even the semantics would be tenant) Sign-in audience. This property is mutually exclusive with TenantId. If both are provided, an exception will be thrown. STS instance (for instance https://login.microsoftonline.com for the Azure public cloud). The name was chosen to ensure compatibility with AzureAdOptions in ASP.NET Core. This property is mutually exclusive with . If both are provided, an exception will be thrown. Specific instance in the case of Azure Active Directory. It allows users to use the enum instead of the explicit url. This property is mutually exclusive with . If both are provided, an exception will be thrown. The redirect URI (also known as Reply URI or Reply URL), is the URI at which Azure AD will contact back the application with the tokens. This redirect URI needs to be registered in the app registration (https://aka.ms/msal-net-register-app). In MSAL.NET, IPublicClientApplication defines the following default RedirectUri values: urn:ietf:wg:oauth:2.0:oob for desktop (.NET Framework and .NET Core) applications msal{ClientId} for Xamarin iOS and Xamarin Android without broker (as this will be used by the system web browser by default on these platforms to call back the application) These default URIs could change in the future. For Web Apps and Web APIs, the redirect URI can be the URL of the application For daemon applications (confidential client applications using only the Client Credential flow that is calling AcquireTokenForClient), no reply URI is needed. This is especially important when you deploy an application that you have initially tested locally; you then need to add the reply URL of the deployed application in the application registration portal Enables you to configure the level of logging you want. The default value is . Setting it to will only get errors Setting it to will get errors and warning, etc.. See https://aka.ms/msal-net-logging Flag to enable/disable logging of Personally Identifiable Information (PII). PII logs are never written to default outputs like Console, Logcat or NSLog Default is set to false, which ensures that your application is compliant with GDPR. You can set it to true for advanced debugging requiring PII. See https://aka.ms/msal-net-logging Flag to enable/disable logging to platform defaults. In Desktop/UWP, Event Tracing is used. In iOS, NSLog is used. In Android, logcat is used. The default value is false. See https://aka.ms/msal-net-logging Identifier of the component (libraries/SDK) consuming MSAL.NET. This will allow for disambiguation between MSAL usage by the app vs MSAL usage by component libraries. The name of the calling application for telemetry purposes. The version of the calling application for telemetry purposes. Value communicating that the AzureCloudInstance is not specified. Microsoft Azure public cloud. Maps to https://login.microsoftonline.com Microsoft Chinese national cloud. Maps to https://login.chinacloudapi.cn Microsoft German national cloud ("Black Forest"). Maps to https://login.microsoftonline.de US Government cloud. Maps to https://login.microsoftonline.us Constructor of a ConfidentialClientApplicationBuilder from application configuration options. See https://aka.ms/msal-net-application-configuration Public client applications configuration options A from which to set more parameters, and to create a public client application instance Creates a ConfidentialClientApplicationBuilder from a clientID. See https://aka.ms/msal-net-application-configuration Client ID (also known as App ID) of the application as registered in the application registration portal (https://aka.ms/msal-net-register-app)/. A from which to set more parameters, and to create a public client application instance Sets the certificate associated with the application The X509 certificate used as credentials to prove the identity of the application to Azure AD. Sets the application secret Secret string previously shared with AAD at application registration to prove the identity of the application (the client) requesting the tokens Builds the ConfidentialClientApplication from the parameters set in the builder Configuration options for a confidential client application (Web app / Web API / daemon app). See https://aka.ms/msal-net/application-configuration Client secret for the confidential client application. This secret (application password) is provided by the application registration portal, or provided to Azure AD during the application registration with PowerShell AzureAD, PowerShell AzureRM, or Azure CLI. Configuration properties used to build a public or confidential client application Client ID (also known as App ID) of the application as registered in the application registration portal (https://aka.ms/msal-net-register-app) Flag telling if logging of Personally Identifiable Information (PII) is enabled/disabled for the application. See https://aka.ms/msal-net-logging used to get HttpClient instances to commmunicate with the identity provider. Level of logging requested for the app. See https://aka.ms/msal-net-logging Flag telling if logging to platform defaults is enabled/disabled for the app. In Desktop/UWP, Event Tracing is used. In iOS, NSLog is used. In Android, logcat is used. See https://aka.ms/msal-net-logging Redirect URI for the application. See Audience for the application. See Callback used for logging. It was set with See https://aka.ms/msal-net-logging Callback used for sending telemetry about MSAL.NET out of your app. It was set by a call to Extra query parameters that will be applied to every acquire token operation. See The name of the calling application for telemetry purposes. The version of the calling application for telemetry purposes. Flag to enable authentication with the user currently logeed-in in Windows. When set to true, the application will try to connect to the corporate network using windows integrated authentication. ExtendedLifeTimeEnabled is a Boolean that applications can set to true in case when the STS has an outage, to be more resilient. Used for debugging and testing. Factory responsible for creating HttpClient .Net recommends to use a single instance of HttpClient Implementations must be thread safe. Consider creating and configuring an HttpClient in the constructor of the factory, and returning the same object in Method returning an Http client that will be used to communicate with Azure AD. This enables advanced scenarios. See https://aka.ms/msal-net-application-configuration An Http client Creates a PublicClientApplicationBuilder from public client application configuration options. See https://aka.ms/msal-net-application-configuration Public client applications configuration options A from which to set more parameters, and to create a public client application instance Creates a PublicClientApplicationBuilder from a clientID. See https://aka.ms/msal-net-application-configuration Client ID (also known as App ID) of the application as registered in the application registration portal (https://aka.ms/msal-net-register-app)/. A from which to set more parameters, and to create a public client application instance Flag to enable authentication with the user currently logeed-in in Windows. When set to true, the application will try to connect to the corporate network using windows integrated authentication. A from which to set more parameters, and to create a public client application instance Configuration options for a public client application (desktop/mobile app). See https://aka.ms/msal-net/application-configuration Contains the results of one token acquisition operation in or . For details see https://aka.ms/msal-net-authenticationresult Constructor meant to help application developers test their apps. Allows mocking of authentication flows. App developers should never new-up in product code. Access Token that can be used as a bearer token to access protected web APIs Account information Expiracy date-time for the access token See ID token See granted scope values as returned by the service identifier for the Azure AD tenant from which the token was acquired. Can be null Unique Id of the account. It can be null. When the is not null, this is its ID, that is its ObjectId claim, or if that claim is null, the Subject claim. Access Token that can be used as a bearer token to access protected web APIs In case when Azure AD has an outage, to be more resilient, it can return tokens with an expiration time, and also with an extended expiration time. The tokens are then automatically refreshed by MSAL when the time is more than the expiration time, except when ExtendedLifeTimeEnabled is true and the time is less than the extended expiration time. This goes in pair with Web APIs middleware which, when this extended life time is enabled, can accept slightly expired tokens. Client applications accept extended life time tokens only if the ExtendedLifeTimeEnabled Boolean is set to true on ClientApplicationBase. Gets the Unique Id of the account. It can be null. When the is not null, this is its ID, that is its ObjectId claim, or if that claim is null, the Subject claim. Gets the point in time in which the Access Token returned in the property ceases to be valid. This value is calculated based on current UTC time measured locally and the value expiresIn received from the service. Gets the point in time in which the Access Token returned in the AccessToken property ceases to be valid in MSAL's extended LifeTime. This value is calculated based on current UTC time measured locally and the value ext_expiresIn received from the service. Gets an identifier for the Azure AD tenant from which the token was acquired. This property will be null if tenant information is not returned by the service. Gets the account information. Some elements in might be null if not returned by the service. The account can be passed back in some API overloads to identify which account should be used such as or for instance Gets the Id Token if returned by the service or null if no Id Token is returned. Gets the granted scope values returned by the service. Creates the content for an HTTP authorization header from this authentication result, so that you can call a protected API Created authorization header of the form "Bearer {AccessToken}" Here is how you can call a protected API from this authentication result (in the result variable): HttpClient client = new HttpClient(); client.DefaultRequestHeaders.Add("Authorization", result.CreateAuthorizationHeader()); HttpResponseMessage r = await client.GetAsync(urlOfTheProtectedApi); In MSAL.NET 1.x, returned the user who signed in to get the authentication result. From MSAL 2.x rather use instead. See https://aka.ms/msal-net-2-released for more details. This interface is for an individual request to access the cache functions. It is assumed that the implementation will have context about the call when using the cache manager. In msal, this context means AuthenticationParameters. Try to read the cache. If a cache hit of any kind is found, return the token(s) and account information that was discovered. True if a cache hit of any kind is found, False otherwise. Given a MsalTokenResponse from the server, cache any relevant entries. Delete the cached refresh token for this cache context. Interface to handle transforming unified schema types to/from the ADAL Legacy cache format and storing/retrieving them to/from the adal cache persistence. This interface represents raw byte i/o for cache data stored using relative paths (e.g. in memory, file system). Interface providing mechanism to transform the unified schema types into their appropriate "path" or "key" for storage/retrieval. For example, on Windows, this will be a relative file system path. But on iOS/macOS is will be a path to keychain storage. This is the in-memory cache implementation. This should be used when a developer wants to persist the cache data on their own (e.g. in a distributed cloud environment). Returns list of relative paths at this directory, and downwards if recurse is true. Equivalence layer with MSAL C++ and other native platforms for handing read/write/query operations on the various credential and account types in the unified cache. Also provides (on msal.net) access to the Adal Legacy Cache Manager for ensuring legacy cache interop during storage access. This does most of the raw work of IStorageManager but without knowledge of cross cutting concerns like telemetry. TODO: this should be merged conceptually with MsalTokenResponse... A class to implement Base32Hex encoding The different characters allowed in Base32 encoding. This is a 32-character subset of the twenty-six letters A–Z and six digits 2–7. https://en.wikipedia.org/wiki/Base32 Converts a byte array into a Base32 string. The string to convert to Base32. Whether or not to add RFC3548 '='-padding to the string. A Base32 string. https://tools.ietf.org/html/rfc3548#section-2.2 indicates padding MUST be added unless the reference to the RFC tells us otherswise. https://github.com/google/google-authenticator/wiki/Key-Uri-Format indicates that padding SHOULD be omitted. To meet both requirements, you can omit padding when required. Converts a Base32 string into the corresponding byte array, using 5 bits per character. The Base32 String A byte array containing the properly encoded bytes. Given that we want to be able to migrate to CacheV2 with confidence, we want the existing cache infrastructure to work and be able to test the new cache. This interface acts as the adapter between the product and the particular cache version being used. Once we've fully moved to the V2 cache, the goal is that this adapter infra will be removed and the implementation within this class for the V2 cache will move into the product code directly. This is the object we will serialize (using StorageJson* classes for specific field names) for Account information. If you're modifying this object and the related (de)serialization, you're modifying the cache persistence model and need to ensure it's compatible and compliant with the other cache implementations. This is the object we will serialize (using StorageJson* classes for specific field names) for Credential information. Credentials include Access Tokens, Refresh Tokens, etc. If you're modifying this object and the related (de)serialization, you're modifying the cache persistence model and need to ensure it's compatible and compliant with the other cache implementations. This class contains the methods for encoding/decoding our object representations of cache data. If you're modifying this class, you're updating the schema persistence behavior so ensure you're aligned with the other cache schema models. Contains the results of one token acquisition operation. Creates result returned from AcquireToken. Except in advanced scenarios related to token caching, you do not need to create any instance of AuthenticationResult. Type of the Access Token returned The Access Token requested The point in time in which the Access Token returned in the AccessToken property ceases to be valid Creates result returned from AcquireToken. Except in advanced scenarios related to token caching, you do not need to create any instance of AuthenticationResult. Type of the Access Token returned The Access Token requested The point in time in which the Access Token returned in the AccessToken property ceases to be valid The point in time in which the Access Token returned in the AccessToken property ceases to be valid Gets the type of the Access Token returned. Gets the Access Token requested. Gets the point in time in which the Access Token returned in the AccessToken property ceases to be valid. This value is calculated based on current UTC time measured locally and the value expiresIn received from the service. Gets the point in time in which the Access Token returned in the AccessToken property ceases to be valid in ADAL's extended LifeTime. This value is calculated based on current UTC time measured locally and the value ext_expiresIn received from the service. Gives information to the developer whether token returned is during normal or extended lifetime. Gets an identifier for the tenant the token was acquired from. This property will be null if tenant information is not returned by the service. Gets user information including user Id. Some elements in UserInfo might be null if not returned by the service. Gets the entire Id Token if returned by the service or null if no Id Token is returned. Gets the authority that has issued the token. Creates authorization header from authentication result. Created authorization header Gets the Refresh Token associated with the requested Access Token. Note: not all operations will return a Refresh Token. Gets a value indicating whether the refresh token can be used for requesting access token for other resources. Serializes the object to a JSON string Deserialized authentication result Serializes the object to a JSON string Serialized authentication result Determines what type of subject the token was issued for. User Client UserPlusClient: This is for confidential clients used in middle tier. can be used with Linq to access items from the TokenCache dictionary. Determines whether the specified object is equal to the current object. true if the specified object is equal to the current object; otherwise, false. The object to compare with the current object. 2 Determines whether the specified TokenCacheKey is equal to the current object. true if the specified TokenCacheKey is equal to the current object; otherwise, false. The TokenCacheKey to compare with the current object. 2 Returns the hash code for this TokenCacheKey. A 32-bit signed integer hash code. Contains information of a single user. This information is used for token cache lookup. Also if created with userId, userId is sent to the service when login_hint is accepted. Create user information for token cache lookup Create user information copied from another UserInfo object Gets identifier of the user authenticated during token acquisition. Gets a displayable value in UserPrincipalName (UPN) format. The value can be null. Gets given name of the user if provided by the service. If not, the value is null. Gets family name of the user if provided by the service. If not, the value is null. Gets the time when the password expires. Default value is 0. Gets the url where the user can change the expiring password. The value can be null. Gets identity provider if returned by the service. If not, the value is null. Data class, common to ADAL.NET and MSAL.NET V2 used for the token cache serialization in a dual format: the ADAL V3 cache format, and the new unified cache format, common to ADAL.NET 4.x, MSAL.NET 2.x and other libraries in the same Operating System (for instance ADAL and MSAL for objective C in iOS) Array of bytes containing the serialized cache in ADAL.NET V3 format Array of bytes containing the serialized MSAL.NET V2 cache Returns a tuple where Item1 is a map of ClientInfo -> AdalUserInfo for those users that have ClientInfo Item2 is a list of AdalUserInfo for those users that do not have ClientInfo Algorithm to delete: DisplayableId cannot be null Removal is scoped by enviroment and clientId; If accountId != null then delete everything with the same clientInfo otherwise, delete everything with the same displayableId Notes: - displayableId can change rarely - ClientCredential Grant uses the app token cache, not the user token cache, so this algorithm does not apply (nor will GetAccounts / RemoveAccount work) String comprised of scopes that have been lowercased and ordered. Normalization is important when creating unique keys. Apps shouldn't rely on its presence, unless the app itself wrote it. It means that SDK should translate absense of app metadata to the default values of its required fields. Other apps that don't support app metadata should never remove existing app metadata. App metadata is a non-removable entity.It means there's no need for a public API to remove app metadata, and it shouldn't be removed when removeAccount is called. App metadata is a non-secret entity. It means that it cannot store any secret information, like tokens, nor PII, like username etc. App metadata can be extended by adding additional fields when required.Absense of any non-required field should translate to default values for those field. mandatory mandatory The family id of which this application is part of. This is an internal feature and there is currently a single app, with id 1. If familyId is empty, it means an app is not part of a family. A missing entry means unkown status. Important: order matters. This MUST be the last one called since it will extract the remaining fields out. Optional. A value here means the token in an FRT. Family Refresh Tokens, can be used for all clients part of the family An object representing the key of the token cache AT dictionary. The format of the key is not important for this library, as long as it is unique. The format of the key is platform dependent An object representing the key of the token cache Account dictionary. The format of the key is not important for this library, as long as it is unique. App metadata is an optional entity in cache and can be used by apps to store additional metadata applicable to a particular client. Ex: appmetadata-login.microsoftonline.com-b6c69a37-df96-4db0-9088-2ab96e1d8215 An object representing the key of the token cache Id Token dictionary. The format of the key is not important for this library, as long as it is unique. An object representing the key of the token cache RT dictionary. The format of the key is not important for this library, as long as it is unique. Normal RTs are scoped by env, account_id and clientID FRTs are scoped by env, account_id and familyID (clientID exists, but is irrelevant) Constructor Can be null or empty, denoting a normal RT. A value signifies an FRT. The dictionary serializer does not handle Unknown Nodes Abstract class containing common API methods and properties. Both and extend this class. For details see https://aka.ms/msal-net-client-applications Abstract class containing common API methods and properties. Both and extend this class. For details see https://aka.ms/msal-net-client-applications Default Authority used for interactive calls. Details on the configuration of the ClientApplication for debugging purposes. Gets the URL of the authority, or security token service (STS) from which MSAL.NET will acquire security tokens The return value of this property is either the value provided by the developer in the constructor of the application, or otherwise the value of the static member (that is https://login.microsoftonline.com/common/) User token cache. This case holds id tokens, access tokens and refresh tokens for accounts. It's used and updated silently if needed when calling or one of the overrides of . It is updated by each AcquireTokenXXX method, with the exception of AcquireTokenForClient which only uses the application cache (see IConfidentialClientApplication). On .NET Framework and .NET Core you can also customize the token cache serialization. See https://aka.ms/msal-net-token-cache-serialization. This is taken care of by MSAL.NET on other platforms. Returns all the available accounts in the user token cache for the application. Get the by its identifier among the accounts available in the token cache. Account identifier. The identifier is typically the value of the property of . You typically get the account id from an by using the property> Removes all tokens in the cache for the specified account. Instance of the account that needs to be removed [V3 API] Attempts to acquire an access token for the from the user token cache. See https://aka.ms/msal-net-acquiretokensilent for more details Scopes requested to access a protected API Account for which the token is requested. This parameter is optional. If nothing is passed and no Account or LoginHint are provided, then, if one, and only one, account is in the cache, that account is used. Otherwise, an exception will be thrown. An used to build the token request, adding optional parameters will be thrown in the case where an interaction is required with the end user of the application, for instance, if no refresh token was in the cache, or the user needs to consent, or re-sign-in (for instance if the password expired), or the user needs to perform two factor authentication The access token is considered a match if it contains at least all the requested scopes. This means that an access token with more scopes than requested could be returned. If the access token is expired or close to expiration - within a 5 minute window - then the cached refresh token (if available) is used to acquire a new access token by making a silent network call. You can set additional parameters by chaining the builder with: or one of its overrides to request a token for a different authority than the one set at the application construction to bypass the user token cache and force refreshing the token, as well as to specify extra query parameters [V3 API] Attempts to acquire an access token for the having the match the given , from the user token cache. See https://aka.ms/msal-net-acquiretokensilent for more details Scopes requested to access a protected API Typically the username, in UPN format, e.g. johnd@contoso.com An used to build the token request, adding optional parameters will be thrown in the case where an interaction is required with the end user of the application, for instance, if no refresh token was in the cache, or the user needs to consent, or re-sign-in (for instance if the password expired), or the user needs to perform two factor authentication If multiple match the , or if there are no matches, an exception is thrown. The access token is considered a match if it contains at least all the requested scopes. This means that an access token with more scopes than requested could be returned. If the access token is expired or close to expiration - within a 5 minute window - then the cached refresh token (if available) is used to acquire a new access token by making a silent network call. You can set additional parameters by chaining the builder with: or one of its overrides to request a token for a different authority than the one set at the application construction to bypass the user token cache and force refreshing the token, as well as to specify extra query parameters In MSAL 1.x returned an enumeration of . From MSAL 2.x, use instead. See https://aka.ms/msal-net-2-released for more details. In MSAL 1.x, return a user from its identifier. From MSAL 2.x, use instead. See https://aka.ms/msal-net-2-released for more details. Identifier of the user to retrieve the user in the cache with the identifier passed as an argument In MSAL 1.x removed a user from the cache. From MSAL 2.x, use instead. See https://aka.ms/msal-net-2-released for more details. User to remove from the cache Identifier of the component (libraries/SDK) consuming MSAL.NET. This will allow for disambiguation between MSAL usage by the app vs MSAL usage by component libraries. Sets or Gets a custom query parameters that may be sent to the STS for dogfood testing or debugging. This is a string of segments of the form key=value separated by an ampersand character. Unless requested otherwise, this parameter should not be set by application developers as it may have adverse effect on the application. Gets/sets a boolean value telling the application if the authority needs to be verified against a list of known authorities. The default value is true. It should currently be set to false for Azure AD B2C authorities as those are customer specific (a list of known B2C authorities cannot be maintained by MSAL.NET). This property can be set just after the construction of the application and before an operation acquiring a token or interacting with the STS. The redirect URI (also known as Reply URI or Reply URL), is the URI at which Azure AD will contact back the application with the tokens. This redirect URI needs to be registered in the app registration (https://aka.ms/msal-net-register-app). In MSAL.NET, define the following default RedirectUri values: urn:ietf:wg:oauth:2.0:oob for desktop (.NET Framework and .NET Core) applications msal{ClientId} for Xamarin iOS and Xamarin Android (as this will be used by the system web browser by default on these platforms to call back the application) These default URIs could change in the future. In , this can be the URL of the Web application / Web API. This is especially important when you deploy an application that you have initially tested locally; you then need to add the reply URL of the deployed application in the application registration portal Gets the Client ID (also known as Application ID) of the application as registered in the application registration portal (https://aka.ms/msal-net-register-app) and as passed in the constructor of the application [V2 API] Attempts to acquire an access token for the from the user token cache, with advanced parameters controlling network call. Scopes requested to access a protected API Account for which the token is requested. Specific authority for which the token is requested. Passing a different value than configured in the application constructor narrows down the selection to a specific tenant. This does not change the configured value in the application. This is specific to applications managing several accounts (like a mail client with several mailboxes) If true, ignore any access token in the cache and attempt to acquire new access token using the refresh token for the account if this one is available. This can be useful in the case when the application developer wants to make sure that conditional access policies are applied immediately, rather than after the expiration of the access token An containing the requested access token can be thrown in the case where an interaction is required with the end user of the application, for instance, if no refresh token was in the cache,a or the user needs to consent, or re-sign-in (for instance if the password expired), or performs two factor authentication The access token is considered a match if it contains at least all the requested scopes. This means that an access token with more scopes than requested could be returned as well. If the access token is expired or close to expiration (within a 5 minute window), then the cached refresh token (if available) is used to acquire a new access token by making a silent network call. See https://aka.ms/msal-net-acquiretokensilent for more details [V2 API] Attempts to acquire an access token for the from the user token cache. Scopes requested to access a protected API Account for which the token is requested. An containing the requested token can be thrown in the case where an interaction is required with the end user of the application, for instance so that the user consents, or re-signs-in (for instance if the password expired), or performs two factor authentication The access token is considered a match if it contains at least all the requested scopes. This means that an access token with more scopes than requested could be returned as well. If the access token is expired or close to expiration (within a 5 minute window), then the cached refresh token (if available) is used to acquire a new access token by making a silent network call. See https://aka.ms/msal-net-acquiretokensilent for more details Class to be used for confidential client applications (Web Apps, Web APIs, and daemon applications). Confidential client applications are typically applications which run on servers (Web Apps, Web API, or even service/daemon applications). They are considered difficult to access, and therefore capable of keeping an application secret (hold configuration time secrets as these values would be difficult for end users to extract). A web app is the most common confidential client. The clientId is exposed through the web browser, but the secret is passed only in the back channel and never directly exposed. For details see https://aka.ms/msal-net-client-applications Acquires a security token from the authority configured in the app using the authorization code previously received from the STS. It uses the OAuth 2.0 authorization code flow (See https://aka.ms/msal-net-authorization-code). It's usually used in Web Apps (for instance ASP.NET / ASP.NET Core Web apps) which sign-in users, and can request an authorization code. This method does not lookup the token cache, but stores the result in it, so it can be looked up using other methods such as . Scopes requested to access a protected API The authorization code received from the service authorization endpoint. A builder enabling you to add optional parameters before executing the token request You can set optional parameters by chaining the builder with: , , Acquires a token from the authority configured in the app, for the confidential client itself (in the name of no user) using the client credentials flow. See https://aka.ms/msal-net-client-credentials. scopes requested to access a protected API. For this flow (client credentials), the scopes should be of the form "{ResourceIdUri/.default}" for instance https://management.azure.net/.default or, for Microsoft Graph, https://graph.microsoft.com/.default as the requested scopes are defined statically with the application registration in the portal, and cannot be overriden in the application. A builder enabling you to add optional parameters before executing the token request You can also chain the following optional parameters: Acquires an access token for this application (usually a Web API) from the authority configured in the application, in order to access another downstream protected Web API on behalf of a user using the OAuth 2.0 On-Behalf-Of flow. See https://aka.ms/msal-net-on-behalf-of. This confidential client application was itself called with a token which will be provided in the userAssertion parameter. Scopes requested to access a protected API Instance of containing credential information about the user on behalf of whom to get a token. A builder enabling you to add optional parameters before executing the token request You can also chain the following optional parameters: Computes the URL of the authorization request letting the user sign-in and consent to the application accessing specific scopes in the user's name. The URL targets the /authorize endpoint of the authority configured in the application. This override enables you to specify a login hint and extra query parameter. Scopes requested to access a protected API A builder enabling you to add optional parameters before executing the token request to get the URL of the STS authorization endpoint parametrized with the parameters You can also chain the following optional parameters: Application token cache. This case holds access tokens and refresh tokens for the application. It's maintained and updated silently if needed when calling On .NET Framework and .NET Core you can also customize the token cache serialization. See https://aka.ms/msal-net-token-cache-serialization. This is taken care of by MSAL.NET on other platforms [V2 API] Constructor for a confidential client application requesting tokens with the default authority () Client ID (also known as App ID) of the application as registered in the application registration portal (https://aka.ms/msal-net-register-app)/. REQUIRED URL where the STS will call back the application with the security token. REQUIRED Credential, previously shared with Azure AD during the application registration and proving the identity of the application. An instance of can be created either from an application secret, or a certificate. REQUIRED. Token cache for saving user tokens. Can be set to null if the confidential client application only uses the Client Credentials grants (that is requests token in its own name and not in the name of users). Otherwise should be provided. REQUIRED Token cache for saving application (that is client token). Can be set to null except if the application uses the client credentials grants See https://aka.ms/msal-net-client-applications for a description of confidential client applications (and public client applications) Client credential grants are overrides of See also for the V3 API way of building a confidential client application with a builder pattern. It offers building the application from configuration options, and a more fluid way of providing parameters. which enables app developers to specify the authority [V2 API] Constructor for a confidential client application requesting tokens with a specified authority Client ID (also named Application ID) of the application as registered in the application registration portal (https://aka.ms/msal-net-register-app)/. REQUIRED Authority of the security token service (STS) from which MSAL.NET will acquire the tokens. Usual authorities are: https://login.microsoftonline.com/tenant/, where tenant is the tenant ID of the Azure AD tenant or a domain associated with this Azure AD tenant, in order to sign-in users of a specific organization only https://login.microsoftonline.com/common/ to sign-in users with any work and school accounts or Microsoft personal accounts https://login.microsoftonline.com/organizations/ to sign-in users with any work and school accounts https://login.microsoftonline.com/consumers/ to sign-in users with only personal Microsoft accounts(live) Note that this setting needs to be consistent with what is declared in the application registration portal URL where the STS will call back the application with the security token. REQUIRED Credential, previously shared with Azure AD during the application registration and proving the identity of the application. An instance of can be created either from an application secret, or a certificate. REQUIRED. Token cache for saving user tokens. Can be set to null if the confidential client application only uses the Client Credentials grants (that is requests token in its own name and not in the name of users). Otherwise should be provided. REQUIRED Token cache for saving application (that is client token). Can be set to null except if the application uses the client credentials grants See https://aka.ms/msal-net-client-applications for a description of confidential client applications (and public client applications) Client credential grants are overrides of See also for the V3 API way of building a confidential client application with a builder pattern. It offers building the application from configuration options, and a more fluid way of providing parameters. which enables app developers to create a confidential client application requesting tokens with the default authority. [V2 API] Acquires an access token for this application (usually a Web API) from the authority configured in the application, in order to access another downstream protected Web API on behalf of a user using the OAuth 2.0 On-Behalf-Of flow. (See https://aka.ms/msal-net-on-behalf-of). This confidential client application was itself called with a token which will be provided in the userAssertion parameter. Scopes requested to access a protected API Instance of containing credential information about the user on behalf of whom to get a token. Authentication result containing a token for the requested scopes and account for the on-behalf-of flow when specifying the authority which is the corresponding V3 API. [V2 API] Acquires an access token for this application (usually a Web API) from a specific authority, in order to access another downstream protected Web API on behalf of a user (See https://aka.ms/msal-net-on-behalf-of). This confidential client application was itself called with a token which will be provided in the userAssertion parameter. Scopes requested to access a protected API Instance of containing credential information about the user on behalf of whom to get a token. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value Authentication result containing a token for the requested scopes and account for the on-behalf-of flow without specifying the authority which is the corresponding V3 API. [V2 API] Acquires an access token for this application (usually a Web API) from the authority configured in the application, in order to access another downstream protected Web API on behalf of a user using the OAuth 2.0 On-Behalf-Of flow. (See https://aka.ms/msal-net-on-behalf-of). This confidential client application was itself called with a token which will be provided in the userAssertion parameter. This override sends the certificate, which helps certificate rotation in Azure AD Scopes requested to access a protected API Instance of containing credential information about the user on behalf of whom to get a token. Authentication result containing a token for the requested scopes and account which is the corresponding V3 API [V2 API] Acquires an access token for this application (usually a Web API) from a specific authority, in order to access another downstream protected Web API on behalf of a user (See https://aka.ms/msal-net-on-behalf-of). This confidential client application was itself called with a token which will be provided in the This override sends the certificate, which helps certificate rotation in Azure AD userAssertion parameter. Scopes requested to access a protected API Instance of containing credential information about the user on behalf of whom to get a token. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value Authentication result containing a token for the requested scopes and account which is the corresponding V3 API [V2 API] Acquires a security token from the authority configured in the app using the authorization code previously received from the STS. It uses the OAuth 2.0 authorization code flow (See https://aka.ms/msal-net-authorization-code). It's usually used in Web Apps (for instance ASP.NET / ASP.NET Core Web apps) which sign-in users, and therefore receive an authorization code. This method does not lookup the token cache, but stores the result in it, so it can be looked up using other methods such as . The authorization code received from service authorization endpoint. Scopes requested to access a protected API Authentication result containing token of the user for the requested scopes which is the corresponding V2 API [V3 API] Acquires a token from the authority configured in the app, for the confidential client itself (in the name of no user) using the client credentials flow. (See https://aka.ms/msal-net-client-credentials) scopes requested to access a protected API. For this flow (client credentials), the scopes should be of the form "{ResourceIdUri/.default}" for instance https://management.azure.net/.default or, for Microsoft Graph, https://graph.microsoft.com/.default as the requested scopes are really defined statically at application registration in the portal, and cannot be overriden in the application. See also Authentication result containing the token of the user for the requested scopes [V2 API] Acquires a token from the authority configured in the app, for the confidential client itself (in the name of no user) using the client credentials flow. (See https://aka.ms/msal-net-client-credentials) Scopes requested to access a protected API. For this flow (client credentials), the scopes should be of the form "{ResourceIdUri/.default}" for instance https://management.azure.net/.default or, for Microsoft Graph, https://graph.microsoft.com/.default as the requested scopes are really defined statically at application registration in the portal, and cannot be overriden in the application If true, API will ignore the access token in the cache and attempt to acquire new access token using client credentials. This override can be used in case the application knows that conditional access policies changed Authentication result containing token of the user for the requested scopes which is the corresponding V3 API [V2 API] Acquires token from the service for the confidential client using the client credentials flow. (See https://aka.ms/msal-net-client-credentials) This method enables application developers to achieve easy certificate roll-over in Azure AD: this method will send the public certificate to Azure AD along with the token request, so that Azure AD can use it to validate the subject name based on a trusted issuer policy. This saves the application admin from the need to explicitly manage the certificate rollover (either via portal or powershell/CLI operation) Scopes requested to access a protected API Authentication result containing application token for the requested scopes which is the corresponding V3 API [V2 API] Acquires token from the service for the confidential client using the client credentials flow. (See https://aka.ms/msal-net-client-credentials) This method attempts to look up valid access token in the cache unless is true This method enables application developers to achieve easy certificate roll-over in Azure AD: this method will send the public certificate to Azure AD along with the token request, so that Azure AD can use it to validate the subject name based on a trusted issuer policy. This saves the application admin from the need to explicitly manage the certificate rollover (either via portal or powershell/CLI operation) Scopes requested to access a protected API If TRUE, API will ignore the access token in the cache and attempt to acquire new access token using client credentials Authentication result containing application token for the requested scopes which is the corresponding V3 API Acquires an access token from an existing refresh token and stores it and the refresh token into the application user token cache, where it will be available for further AcquireTokenSilentAsync calls. This method can be used in migration to MSAL from ADAL v2 and in various integration scenarios where you have a RefreshToken available. (see https://aka.ms/msal-net-migration-adal2-msal2) Scope to request from the token endpoint. Setting this to null or empty will request an access token, refresh token and ID token with default scopes The refresh token (for example previously obtained from ADAL 2.x) [V2 API] Computes the URL of the authorization request letting the user sign-in and consent to the application accessing specific scopes in the user's name. The URL targets the /authorize endpoint of the authority configured in the application. This override enables you to specify a login hint and extra query parameter. Scopes requested to access a protected API Identifier of the user. Generally a UPN. This can be empty This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. URL of the authorize endpoint including the query parameters. which is the corresponding V3 API [V2 API] Computes the URL of the authorization request letting the user sign-in and consent to the application accessing specific scopes in the user's name. The URL targets the /authorize endpoint of the authority specified as the parameter. This override enables you to specify a redirectUri, login hint extra query parameters, extra scope to consent (which are not for the same resource as the ), and an authority. Scopes requested to access a protected API (a resource) Address to return to upon receiving a response from the authority. Identifier of the user. Generally a UPN. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Scopes for additional resources (other than the resource for which are requested), which a developer can request the user to consent to upfront. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value URL of the authorize endpoint including the query parameters. which is the corresponding V3 API MSAL Flavor: .NET or WinRT MSAL assembly version CPU platform with x86, x64 or ARM as value Version of the operating system. This will not be sent on WinRT Device model. This will not be sent on .NET This class adds additional query parameters or headers to the requests sent to STS. This can help us in collecting statistics and potentially on diagnostics. This object is returned as part of the device code flow and has information intended to be shown to the user about where to navigate to login and what the device code needs to be entered on that device. See https://aka.ms/msal-device-code-flow. and the other overrides User code returned by the service Device code returned by the service Verification URL where the user must navigate to authenticate using the device code and credentials. Time when the device code will expire. Polling interval time to check for completion of authentication flow. User friendly text response that can be used for display purpose. Identifier of the client requesting device code. List of the scopes that would be held by token. Extension method enabling MSAL.NET extenders for public client applications to set a custom web ui that will let the user sign-in with Azure AD, present consent if needed, and get back the authorization code Builder for an AcquireTokenInteractive Customer implementation for the Web UI the builder to be able to chain .With methods Interface that an MSAL.NET extender can implement to provide their own Web UI in public client applications to sign-in user and have them consented part of the Authorization code flow. MSAL.NET provides an embedded web view for Windows and Mac, but there are other scenarios not yet supported. This extensibility point enables them to provide such UI in a secure way Method called by MSAL.NET to delegate the authentication code Web with with the STS URI computed by MSAL.NET that will let the UI extension navigate to the STS authorization endpoint in order to sign-in the user and have them consent The redirect Uri that was configured. The auth code will be appended to this redirect uri and the browser will redirect to it. The cancellation token to which you should respond to. See https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/task-cancellation for details. The URI returned back from the STS authorization endpoint. This URI contains a code=CODE parameters that MSAL.NET will extract and redeem. The authorizationUri"/> is crafted to leverage PKCE in order to protect the token from a man in the middle attack. Only MSAL.NET can redeem the code. In the event of cancellation, the implementer should return OperationCanceledException. We invoke this class from different threads and they all use the same HttpClient. To prevent race conditions, make sure you do not get / set anything on HttpClient itself, instead rely on HttpRequest objects which are thread specific. In particular, do not change any properties on HttpClient such as BaseAddress, buffer sizes and Timeout. You should also not access DefaultRequestHeaders because the getters are not thread safe (use HttpRequestMessage.Headers instead). Performs the POST request just like but does not throw a ServiceUnavailable service exception. Instead, it returns the associated with the request. Check common redirect uri problems. Optionally check that the redirect uri is not the OAuth2 standard redirect uri urn:ietf:wg:oauth:2.0:oob when using a system browser, because the browser cannot redirect back to the app. The IAccount interface represents information about a single account. The same user can be present in different tenants, that is, a user can have multiple accounts. An IAccount is returned in the . property, and can be used as parameters of PublicClientApplication and ConfidentialClientApplication methods acquiring tokens such as Gets a string containing the displayable value in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com. This can be null. This property replaces the DisplayableId property of IUser in previous versions of MSAL.NET Gets a string containing the identity provider for this account, e.g. login.microsoftonline.com. This property replaces the IdentityProvider property of IUser in previous versions of MSAL.NET except that IdentityProvider was a URL with information about the tenant (in addition to the cloud environment), whereas Environment is only the AccountId of the home account for the user. This uniquely identifies the user across AAD tenants. Can be null, for example if this account was migrated to MSAL.NET from ADAL.NET v3's token cache Acquires an access token from an existing refresh token and stores it, and the refresh token, in the user token cache, where it will be available for further AcquireTokenSilent calls. This method can be used in migration to MSAL from ADAL v2, and in various integration scenarios where you have a RefreshToken available. See https://aka.ms/msal-net-migration-adal2-msal2. Scope to request from the token endpoint. Setting this to null or empty will request an access token, refresh token and ID token with default scopes The refresh token from ADAL 2.x A builder enabling you to add optional parameters before executing the token request Acquires an access token from an existing refresh token and stores it and the refresh token into the user token cache, where it will be available for further AcquireTokenSilentAsync calls. This method can be used in migration to MSAL from ADAL v2 and in various integration scenarios where you have a RefreshToken available. (see https://aka.ms/msal-net-migration-adal2-msal2) Scope to request from the token endpoint. Setting this to null or empty will request an access token, refresh token and ID token with default scopes The refresh token from ADAL 2.x Abstract class containing common API methods and properties. Both and extend this class. For details see https://aka.ms/msal-net-client-applications. Interface defining common API methods and properties. Both and extend this class. For details see https://aka.ms/msal-net-client-applications Details on the configuration of the ClientApplication for debugging purposes. User token cache. This case holds id tokens, access tokens and refresh tokens for accounts. It's used and updated silently if needed when calling It is updated by each AcquireTokenXXX method, with the exception of AcquireTokenForClient which only uses the application cache (see IConfidentialClientApplication). On .NET Framework and .NET Core you can also customize the token cache serialization. See https://aka.ms/msal-net-token-cache-serialization. This is taken care of by MSAL.NET on other platforms. Gets the URL of the authority, or the security token service (STS) from which MSAL.NET will acquire security tokens. The return value of this propety is either the value provided by the developer in the constructor of the application, or otherwise the value of the static member (that is https://login.microsoftonline.com/common/) Returns all the available accounts in the user token cache for the application. Get the by its identifier among the accounts available in the token cache. Account identifier. The value of the identifier will probably have been stored value from the value of the property of . You typically get the account id from an by using the property> Attempts to acquire an access token for the from the user token cache, with advanced parameters controlling the network call. See https://aka.ms/msal-net-acquiretokensilent for more details Scopes requested to access a protected API Account for which the token is requested. An used to build the token request, adding optional parameters will be thrown in the case where an interaction is required with the end user of the application, for instance, if no refresh token was in the cache,a or the user needs to consent, or re-sign-in (for instance if the password expired), or the user needs to perform two factor authentication The access token is considered a match if it contains at least all the requested scopes. This means that an access token with more scopes than requested could be returned as well. If the access token is expired or close to expiration (within a 5 minute window), then the cached refresh token (if available) is used to acquire a new access token by making a silent network call. See also the additional parameters that you can set chain: or one of its overrides to request a token for a different authority than the one set at the application construction to bypass the user token cache and force refreshing the token, as well as to specify extra query parameters Attempts to acquire an access token for the from the user token cache, with advanced parameters controlling the network call. See https://aka.ms/msal-net-acquiretokensilent for more details Scopes requested to access a protected API Typically the username, in UPN format, e.g. johnd@contoso.com An used to build the token request, adding optional parameters will be thrown in the case where an interaction is required with the end user of the application, for instance, if no refresh token was in the cache,a or the user needs to consent, or re-sign-in (for instance if the password expired), or the user needs to perform two factor authentication The access token is considered a match if it contains at least all the requested scopes. This means that an access token with more scopes than requested could be returned as well. If the access token is expired or close to expiration (within a 5 minute window), then the cached refresh token (if available) is used to acquire a new access token by making a silent network call. See also the additional parameters that you can set chain: or one of its overrides to request a token for a different authority than the one set at the application construction to bypass the user token cache and force refreshing the token, as well as to specify extra query parameters Removes all tokens in the cache for the specified account. instance of the account that needs to be removed In MSAL 1.x returned an enumeration of . From MSAL 2.x, use instead. See https://aka.ms/msal-net-2-released for more details. In MSAL 1.x, return a user from its identifier. From MSAL 2.x, use instead. See https://aka.ms/msal-net-2-released for more details. Identifier of the user to retrieve the user in the cache with the identifier passed as an argument In MSAL 1.x removed a user from the cache. From MSAL 2.x, use instead. See https://aka.ms/msal-net-2-released for more details. User to remove from the cache Identifier of the component (libraries/SDK) consuming MSAL.NET. This will allow for disambiguation between MSAL usage by the app vs MSAL usage by component libraries. Sets or Gets a custom query parameters that may be sent to the STS for dogfood testing or debugging. This is a string of segments of the form key=value separated by an ampersand character. Unless requested otherwise, this parameter should not be set by application developers as it may have adverse effect on the application. Gets a boolean value telling the application if the authority needs to be verified against a list of known authorities. The default value is true. It should currently be set to false for Azure AD B2C authorities as those are customer specific (a list of known B2C authorities cannot be maintained by MSAL.NET) The redirect URI (also known as Reply URI or Reply URL), is the URI at which Azure AD will contact back the application with the tokens. This redirect URI needs to be registered in the app registration (https://aka.ms/msal-net-register-app) In MSAL.NET, define the following default RedirectUri values: urn:ietf:wg:oauth:2.0:oob for desktop (.NET Framework and .NET Core) applications msal{ClientId} for Xamarin iOS and Xamarin Android (as this will be used by the system web browser by default on these platforms to call back the application) These default URIs could change in the future. In , this can be the URL of the Web application / Web API. This is especially important when you deploy an application that you have initially tested locally; you then need to add the reply URL of the deployed application in the application registration portal. Attempts to acquire an access token for the from the user token cache. Scopes requested to access a protected API Account for which the token is requested. An containing the requested token can be thrown in the case where an interaction is required with the end user of the application, for instance so that the user consents, or re-signs-in (for instance if the password expirred), or performs two factor authentication The access token is considered a match if it contains at least all the requested scopes. This means that an access token with more scopes than requested could be returned as well. If the access token is expired or close to expiration (within 5 minute window), then the cached refresh token (if available) is used to acquire a new access token by making a silent network call. See https://aka.ms/msal-net-acuiretokensilent for more details Attempts to acquire and access token for the from the user token cache, with advanced parameters making a network call. Scopes requested to access a protected API Account for which the token is requested. Specific authority for which the token is requested. Passing a different value than configured in the application constructor narrows down the selection of tenants for which to get a tenant, but does not change the configured value If true, the will ignore the access token in the cache and attempt to acquire new access token using the refresh token for the account if this one is available. This can be useful in the case when the application developer wants to make sure that conditional access policies are applies immediately, rather than after the expiration of the access token An containing the requested token can be thrown in the case where an interaction is required with the end user of the application, for instance, if no refresh token was in the cache, or the user needs to consents, or re-sign-in (for instance if the password expirred), or performs two factor authentication The access token is considered a match if it contains at least all the requested scopes. This means that an access token with more scopes than requested could be returned as well. If the access token is expired or close to expiration (within 5 minute window), then the cached refresh token (if available) is used to acquire a new access token by making a silent network call. See https://aka.ms/msal-net-acquiretokensilent for more details Gets the Client ID (also known as Application ID) of the application as registered in the application registration portal (https://aka.ms/msal-net-register-app) and as passed in the constructor of the application. Component to be used with confidential client applications like Web Apps/API. Component to be used with confidential client applications like Web Apps/API. Application token cache. This case holds access tokens and refresh tokens for the application. It's maintained and updated silently if needed when calling On .NET Framework and .NET Core you can also customize the token cache serialization. See https://aka.ms/msal-net-token-cache-serialization. This is taken care of by MSAL.NET on other platforms. [V3 API] Acquires a security token from the authority configured in the app using the authorization code previously received from the STS. It uses the OAuth 2.0 authorization code flow (See https://aka.ms/msal-net-authorization-code). It's usually used in Web Apps (for instance ASP.NET / ASP.NET Core Web apps) which sign-in users, and can request an authorization code. This method does not lookup the token cache, but stores the result in it, so it can be looked up using other methods such as . Scopes requested to access a protected API The authorization code received from the service authorization endpoint. A builder enabling you to add optional parameters before executing the token request You can set optional parameters by chaining the builder with: , , [V3 API] Acquires a token from the authority configured in the app, for the confidential client itself (in the name of no user) using the client credentials flow. See https://aka.ms/msal-net-client-credentials. scopes requested to access a protected API. For this flow (client credentials), the scopes should be of the form "{ResourceIdUri/.default}" for instance https://management.azure.net/.default or, for Microsoft Graph, https://graph.microsoft.com/.default as the requested scopes are really defined statically at application registration in the portal, and cannot be overriden in the application. A builder enabling you to add optional parameters before executing the token request You can also chain the following optional parameters: [V3 API] Acquires an access token for this application (usually a Web API) from the authority configured in the application, in order to access another downstream protected Web API on behalf of a user using the OAuth 2.0 On-Behalf-Of flow. See https://aka.ms/msal-net-on-behalf-of. This confidential client application was itself called with a token which will be provided in the userAssertion parameter. Scopes requested to access a protected API Instance of containing credential information about the user on behalf of whom to get a token. A builder enabling you to add optional parameters before executing the token request You can also chain the following optional parameters: [V3 API] Computes the URL of the authorization request letting the user sign-in and consent to the application accessing specific scopes in the user's name. The URL targets the /authorize endpoint of the authority configured in the application. This override enables you to specify a login hint and extra query parameter. Scopes requested to access a protected API A builder enabling you to add optional parameters before executing the token request to get the URL of the STS authorization endpoint parameterized with the parameters You can also chain the following optional parameters: [V3 API] Acquires token using On-Behalf-Of flow. (See https://aka.ms/msal-net-on-behalf-of) Array of scopes requested for resource Instance of UserAssertion containing user's token. Authentication result containing token of the user for the requested scopes [V3 API] Acquires token using On-Behalf-Of flow. (See https://aka.ms/msal-net-on-behalf-of) Array of scopes requested for resource Instance of UserAssertion containing user's token. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value Authentication result containing token of the user for the requested scopes [V2 API] Acquires security token from the authority using authorization code previously received. This method does not lookup token cache, but stores the result in it, so it can be looked up using other methods such as . The authorization code received from service authorization endpoint. Array of scopes requested for resource Authentication result containing token of the user for the requested scopes [V2 API] Acquires token from the service for the confidential client. This method attempts to look up valid access token in the cache. Array of scopes requested for resource Authentication result containing application token for the requested scopes [V2 API] Acquires token from the service for the confidential client. This method attempts to look up valid access token in the cache. Array of scopes requested for resource If TRUE, API will ignore the access token in the cache and attempt to acquire new access token using client credentials Authentication result containing application token for the requested scopes [V2 API] URL of the authorize endpoint including the query parameters. Array of scopes requested for resource Identifier of the user. Generally a UPN. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. The parameter can be null. URL of the authorize endpoint including the query parameters. [V2 API] Gets URL of the authorize endpoint including the query parameters. Array of scopes requested for resource Address to return to upon receiving a response from the authority. Identifier of the user. Generally a UPN. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. The parameter can be null. Array of scopes for which a developer can request consent upfront. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value URL of the authorize endpoint including the query parameters. Validates the authority if required and returns the OpenId discovery endpoint for the given tenant. This is specific to each authority type. For platforms that do not support a broker (net desktop, net core, UWP, netstandard) Certificate for a client assertion. This class is used in one of the constructors of . ClientCredential is itself used in the constructor of to pass to Azure AD a shared secret (registered in the Azure AD application) for the constructor of with a certificate, and To understand the difference between public client applications and confidential client applications, see https://aka.ms/msal-net-client-applications Constructor to create certificate information used in to instantiate a used in the constructors of The X509 certificate used as credentials to prove the identity of the application to Azure AD. Gets minimum X509 certificate key size in bits Gets the X509 certificate used as credentials to prove the identity of the application to Azure AD. Meant to be used in confidential client applications, an instance of ClientCredential is passed to the constructors of () as credentials proving that the application (the client) is what it claims it is. These credentials can be either a client secret (an application password) or a certificate. This class has one constructor for each case. These credentials are added in the application registration portal (in the secret section). Constructor of client (application) credentials from a contains information about the certificate previously shared with AAD at application registration to prove the identity of the application (the client) requesting the tokens. Constructor of client (application) credentials from a client secret, also known as the application password. Secret string previously shared with AAD at application registration to prove the identity of the application (the client) requesting the tokens. Determines whether or not the cached client assertion can be used again for the next authentication request by checking it's values against incoming request parameters. Returns true if the previously cached client assertion is valid Handles requests that are non-interactive. Currently MSAL supports Integrated Windows Auth (IWA). Base class for all flows. Use by implementing and optionally calling protected helper methods such as SendTokenRequestAsync, which know how to use all params when making the request. Handles requests that are non-interactive. Currently MSAL supports Integrated Windows Auth. Interface to be used with desktop or mobile applications (Desktop / UWP / Xamarin.iOS / Xamarin.Android). public client applications are not trusted to safely keep application secrets, and therefore they only access Web APIs in the name of the user only. For details see https://aka.ms/msal-net-client-applications. Interface defining common API methods and properties. For details see https://aka.ms/msal-net-client-applications Tells if the application can use the system web browser, therefore getting single-sign-on with web applications. By default, MSAL will try to use a system browser on the mobile platforms, if it is available. See https://aka.ms/msal-net-uses-web-browser. Interactive request to acquire a token for the specified scopes. The interactive window will be parented to the specified window. The user will be required to select an account Scopes requested to access a protected API A builder enabling you to add optional parameters before executing the token request The user will be signed-in interactively if needed, and will consent to scopes and do multi-factor authentication if such a policy was enabled in the Azure AD tenant. You can also pass optional parameters by calling: to specify the user experience when signing-in, to specify if you want to use the embedded web browser or the system default browser, or to prevent the select account dialog from appearing in the case you want to sign-in a specific account, if you want to let the user pre-consent to additional scopes (which won't be returned in the access token), to pass additional query parameters to the STS, and one of the overrides of in order to override the default authority set at the application construction. Note that the overriding authority needs to be part of the known authorities added to the application construction. Acquires a security token on a device without a Web browser, by letting the user authenticate on another device. This is done in two steps: The method first acquires a device code from the authority and returns it to the caller via the . This callback takes care of interacting with the user to direct them to authenticate (to a specific URL, with a code) The method then proceeds to poll for the security token which is granted upon successful login by the user based on the device code information See https://aka.ms/msal-device-code-flow. Scopes requested to access a protected API Callback containing information to show the user about how to authenticate and enter the device code. A builder enabling you to add optional parameters before executing the token request You can also pass optional parameters by calling: to pass additional query parameters to the STS, and one of the overrides of in order to override the default authority set at the application construction. Note that the overriding authority needs to be part of the known authorities added to the application construction. Non-interactive request to acquire a security token for the signed-in user in Windows, via Integrated Windows Authentication. See https://aka.ms/msal-net-iwa. The account used in this overrides is pulled from the operating system as the current user principal name. Scopes requested to access a protected API A builder enabling you to add optional parameters before executing the token request You can also pass optional parameters by calling: to pass the identifier of the user account for which to acquire a token with Integrated Windows authentication. This is generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com. This is normally not needed, but some Windows administrators set policies preventing applications from looking-up the signed-in user in Windows, and in that case the username needs to be passed. You can also chain with to pass additional query parameters to the STS, and one of the overrides of in order to override the default authority set at the application construction. Note that the overriding authority needs to be part of the known authorities added to the application construction. Non-interactive request to acquire a security token from the authority, via Username/Password Authentication. Available only on .net desktop and .net core. See https://aka.ms/msal-net-up for details. Scopes requested to access a protected API Identifier of the user application requests token on behalf. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com User password as a secure string. A builder enabling you to add optional parameters before executing the token request You can also pass optional parameters by chaining the builder with: to pass additional query parameters to the STS, and one of the overrides of in order to override the default authority set at the application construction. Note that the overriding authority needs to be part of the known authorities added to the application construction. Flag to enable authentication with the user currently logeed-in in Windows. When set to true, the application will try to connect to the corporate network using windows integrated authentication. Interactive request to acquire token for the specified scopes. The user is required to select an account Scopes requested to access a protected API Authentication result containing a token for the requested scopes and account The user will be signed-in interactively if needed, and will consent to scopes and do multi-factor authentication if such a policy was enabled in the Azure AD tenant. Interactive request to acquire token for the specified scopes. The user will need to sign-in but an account will be proposed based on the Scopes requested to access a protected API Identifier of the user. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Authentication result containing a token for the requested scopes and account Interactive request to acquire token for the specified scopes. The user will need to sign-in but an account will be proposed based on the provided Scopes requested to access a protected API Account to use for the interactive token acquisition. See for ways to get an account Authentication result containing a token for the requested scopes and account Interactive request to acquire token for a login with control of the UI behavior and possiblity of passing extra query parameters like additional claims Scopes requested to access a protected API Identifier of the user. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Authentication result containing a token for the requested scopes and account Interactive request to acquire token for an account with control of the UI behavior and possiblity of passing extra query parameters like additional claims Scopes requested to access a protected API Account to use for the interactive token acquisition. See for ways to get an account Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Authentication result containing a token for the requested scopes and account Interactive request to acquire token for a given login, with the possibility of controlling the user experience, passing extra query parameters, providing extra scopes that the user can pre-consent to, and overriding the authority pre-configured in the application scopes requested to access a protected API Identifier of the user. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. scopes that you can request the end user to consent upfront, in addition to the scopes for the protected Web API for which you want to acquire a security token. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value Authentication result containing a token for the requested scopes and account Interactive request to acquire token for a given account, with the possibility of controlling the user experience, passing extra query parameters, providing extra scopes that the user can pre-consent to, and overriding the authority pre-configured in the application Scopes requested to access a protected API Account to use for the interactive token acquisition. See for ways to get an account Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Scopes that you can request the end user to consent upfront, in addition to the scopes for the protected Web API for which you want to acquire a security token. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value Authentication result containing a token for the requested scopes and account Interactive request to acquire token for the specified scopes. The interactive window will be parented to the specified window. The user will be required to select an account Scopes requested to access a protected API Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and account The user will be signed-in interactively if needed, and will consent to scopes and do multi-factor authentication if such a policy was enabled in the Azure AD tenant. Interactive request to acquire token for the specified scopes. The interactive window will be parented to the specified window. . The user will need to sign-in but an account will be proposed based on the Scopes requested to access a protected API Identifier of the user. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and login Interactive request to acquire token for the specified scopes. The user will need to sign-in but an account will be proposed based on the provided Scopes requested to access a protected API Account to use for the interactive token acquisition. See for ways to get an account Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and account Interactive request to acquire token for a login with control of the UI behavior and possiblity of passing extra query parameters like additional claims Scopes requested to access a protected API Identifier of the user. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and account Interactive request to acquire token for an account with control of the UI behavior and possiblity of passing extra query parameters like additional claims Scopes requested to access a protected API Account to use for the interactive token acquisition. See for ways to get an account Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and account Interactive request to acquire token for a given login, with the possibility of controlling the user experience, passing extra query parameters, providing extra scopes that the user can pre-consent to, and overriding the authority pre-configured in the application Scopes requested to access a protected API Identifier of the user. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Scopes that you can request the end user to consent upfront, in addition to the scopes for the protected Web API for which you want to acquire a security token. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and account Interactive request to acquire token for a given account, with the possibility of controlling the user experience, passing extra query parameters, providing extra scopes that the user can pre-consent to, and overriding the authority pre-configured in the application Scopes requested to access a protected API Account to use for the interactive token acquisition. See for ways to get an account Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Scopes that you can request the end user to consent upfront, in addition to the scopes for the protected Web API for which you want to acquire a security token. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and account Non-interactive request to acquire a security token from the authority, via Username/Password Authentication. See https://aka.ms/msal-net-up. Scopes requested to access a protected API Identifier of the user application requests token on behalf. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com User password. Authentication result containing a token for the requested scopes and account Acquires a security token on a device without a Web browser, by letting the user authenticate on another device. This is done in two steps: the method first acquires a device code from the authority and returns it to the caller via the . This callback takes care of interacting with the user to direct them to authenticate (to a specific URL, with a code) The method then proceeds to poll for the security token which is granted upon successful login by the user based on the device code information See https://aka.ms/msal-device-code-flow. Scopes requested to access a protected API Callback containing information to show the user about how to authenticate and enter the device code. Authentication result containing a token for the requested scopes and for the user who has authenticated on another device with the code Acquires a security token on a device without a Web browser, by letting the user authenticate on another device, with possiblity of passing extra parameters. This is done in two steps: the method first acquires a device code from the authority and returns it to the caller via the . This callback takes care of interacting with the user to direct them to authenticate (to a specific URL, with a code) The method then proceeds to poll for the security token which is granted upon successful login by the user based on the device code information See https://aka.ms/msal-device-code-flow. Scopes requested to access a protected API This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Callback containing information to show the user about how to authenticate and enter the device code. Authentication result containing a token for the requested scopes and for the user who has authenticated on another device with the code Acquires a security token on a device without a Web browser, by letting the user authenticate on another device, with possiblity of cancelling the token acquisition before it times out. This is done in two steps: the method first acquires a device code from the authority and returns it to the caller via the . This callback takes care of interacting with the user to direct them to authenticate (to a specific URL, with a code) The method then proceeds to poll for the security token which is granted upon successful login by the user based on the device code information. This step is cancelable See https://aka.ms/msal-device-code-flow. Scopes requested to access a protected API The callback containing information to show the user about how to authenticate and enter the device code. A CancellationToken which can be triggered to cancel the operation in progress. Authentication result containing a token for the requested scopes and for the user who has authenticated on another device with the code Acquires a security token on a device without a Web browser, by letting the user authenticate on another device, with possiblity of passing extra query parameters and cancelling the token acquisition before it times out. This is done in two steps: the method first acquires a device code from the authority and returns it to the caller via the . This callback takes care of interacting with the user to direct them to authenticate (to a specific URL, with a code) The method then proceeds to poll for the security token which is granted upon successful login by the user based on the device code information. This step is cancelable See https://aka.ms/msal-device-code-flow. Scopes requested to access a protected API This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. The callback containing information to show the user about how to authenticate and enter the device code. A CancellationToken which can be triggered to cancel the operation in progress. Authentication result containing a token for the requested scopes and for the user who has authenticated on another device with the code Non-interactive request to acquire a security token for the signed-in user in Windows, via Integrated Windows Authentication. See https://aka.ms/msal-net-iwa. The account used in this overrides is pulled from the operating system as the current user principal name On Windows Universal Platform, the following capabilities need to be provided: Enterprise Authentication, Private Networks (Client and Server), User Account Information Scopes requested to access a protected API Authentication result containing a token for the requested scopes and for the currently logged-in user in Windows Non-interactive request to acquire a security token for the signed-in user in Windows, via Integrated Windows Authentication. See https://aka.ms/msal-net-iwa. The account used in this overrides is pulled from the operating system as the current user principal name Scopes requested to access a protected API Identifier of the user account for which to acquire a token with Integrated Windows authentication. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Authentication result containing a token for the requested scopes and for the currently logged-in user in Windows Notification for certain token cache interactions during token acquisition. This delegate is used in particular to provide a custom token cache serialization. See https://aka.ms/aka.ms/msal-net-token-cache-serialization Arguments related to the cache item impacted This is the interface that implements the public access to cache operations. With CacheV2, this should only be necessary if the caller is persisting the cache in their own store, since this will provide the serialize/deserialize and before/after notifications used in that scenario. See https://aka.ms/aka.ms/msal-net-token-cache-serialization Sets a delegate to be notified before any library method accesses the cache. This gives an option to the delegate to deserialize a cache entry for the application and accounts specified in the . See https://aka.ms/msal-net-token-cache-serialization Delegate set in order to handle the cache deserialization In the case where the delegate is used to deserialize the cache, it might want to call Sets a delegate to be notified after any library method accesses the cache. This gives an option to the delegate to serialize a cache entry for the application and accounts specified in the . See https://aka.ms/msal-net-token-cache-serialization Delegate set in order to handle the cache serialization in the case where the member of the cache is true In the case where the delegate is used to serialize the cache entirely (not just a row), it might want to call Sets a delegate called before any library method writes to the cache. This gives an option to the delegate to reload the cache state from a row in database and lock that row. That database row can then be unlocked in the delegate registered with Delegate set in order to prepare the cache serialization Serializes the token cache to the MSAL.NET 3.x cache format, which is compatible with other MSAL desktop libraries, e.g. MSAL for Python and MSAL for Java. If you need to maintain SSO between an application using ADAL 3.x or MSAL 2.x and this application using MSAL 3.x, you might also want to serialize and deserialize with / or /, otherwise just use /. Byte stream representation of the cache This is the recommended format for maintaining SSO state between applications. / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Deserializes the token cache to the MSAL.NET 3.x cache format, which is compatible with other MSAL desktop libraries, e.g. MSAL for Python and MSAL for Java. If you need to maintain SSO between an application using ADAL 3.x or MSAL 2.x and this application using MSAL 3.x, you might also want to serialize and deserialize with / or /, otherwise just use /. Byte stream representation of the cache Set to true to clear MSAL cache contents. Defaults to false. You would want to set this to true if you want the cache contents in memory to be exactly what's on disk. You would want to set this to false if you want to merge the contents of what's on disk with your current in memory state. This is the recommended format for maintaining SSO state between applications. / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Serializes the token cache to the MSAL.NET 2.x unified cache format, which is compatible with ADAL.NET v4 and other MSAL.NET v2 applications. If you need to maintain SSO between an application using ADAL 3.x or MSAL 2.x and this application using MSAL 3.x, you might also want to serialize and deserialize with / or /, otherwise just use /. Byte stream representation of the cache / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Deserializes the token cache to the MSAL.NET 2.x cache format, which is compatible with ADAL.NET v4 and other MSAL.NET v2 applications. If you need to maintain SSO between an application using ADAL 3.x or MSAL 2.x and this application using MSAL 3.x, you might also want to serialize and deserialize with / or /, otherwise just use /. Byte stream representation of the cache / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Serializes the token cache to the ADAL.NET 3.x cache format. If you need to maintain SSO between an application using ADAL 3.x or MSAL 2.x and this application using MSAL 3.x, you might also want to serialize and deserialize with / or /, otherwise just use /. Byte stream representation of the cache / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Deserializes the token cache to the ADAL.NET 3.x cache format. If you need to maintain SSO between an application using ADAL 3.x or MSAL 2.x and this application using MSAL 3.x, you might also want to serialize and deserialize with / or /, otherwise just use /. Byte stream representation of the cache / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Functionality replaced by . See https://aka.ms/msal-net-3x-cache-breaking-change Functionality replaced by . See https://aka.ms/msal-net-3x-cache-breaking-change Functionality replaced by and See https://aka.ms/msal-net-3x-cache-breaking-change Functionality replaced by and See https://aka.ms/msal-net-3x-cache-breaking-change Persists the AT and RT and updates app metadata (FOCI) Returns a RT for the request. If familyId is specified, it tries to return the FRT. FOCI - check in the app metadata to see if the app is part of the family null if unkown, true or false if app metadata has details Callback delegate that allows application developers to consume logs, and handle them in a custom manner. This callback is set using . If PiiLoggingEnabled is set to true, when registering the callback this method will receive the messages twice: once with the containsPii parameter equals false and the message without PII, and a second time with the containsPii parameter equals to true and the message might contain PII. In some cases (when the message does not contain PII), the message will be the same. For details see https://aka.ms/msal-net-logging Log level of the log message to process Pre-formatted log message Indicates if the log message contains Organizational Identifiable Information (OII) or Personally Identifiable Information (PII) nor not. If is set to false then this value is always false. Otherwise it will be true when the message contains PII. Level of the log messages. For details see https://aka.ms/msal-net-logging Error Log level Warning Log level Information Log level Verbose Log level Returns true if the actions are the same, either are ready for upload, and either is not aggregable. This is used to determine whether or not we should aggregate this particular property bag of event data. GUID included in request header Floating-point value with a unit of milliseconds indicating the refresh token age Indicates whether the request was executed on a ring serving SPE traffic. An empty string indicates this occurred on an outer ring, and the string "I" indicates the request occurred on the inner ring Error code sent by ESTS Error code which gives more detailed information about server error code In MSAL.NET 1.x, was representing a User. From MSAL 2.x use which represents an account (a user has several accounts). See https://aka.ms/msal-net-2-released for more details. In MSAL.NET 1.x was the displayable ID of a user. From MSAL 2.x use the of an account. See https://aka.ms/msal-net-2-released for more details In MSAL.NET 1.x was the name of the user (which was not very useful as the concatenation of some claims). From MSAL 2.x rather use . See https://aka.ms/msal-net-2-released for more details. In MSAL.NET 1.x was the URL of the identity provider (e.g. https://login.microsoftonline.com/tenantId). From MSAL.NET 2.x use which retrieves the host only (e.g. login.microsoftonline.com). See https://aka.ms/msal-net-2-released for more details. In MSAL.NET 1.x was an identifier for the user in the guest tenant. From MSAL.NET 2.x, use to get the user identifier (globally unique accross tenants). See https://aka.ms/msal-net-2-released for more details. Contains parameters used by the MSAL call accessing the cache. See also which contains methods to customize the cache serialization In MSAL.NET 1.x, returned the user who signed in to get the authentication result. From MSAL 2.x rather use instead. See https://aka.ms/msal-net-2-released for more details. Gets the involved in the transaction Gets the ClientId (application ID) of the application involved in the cache transaction Gets the account involved in the cache transaction. Indicates whether the state of the cache has changed, for example when tokens are being added or removed. Not all cache operations modify the state of the cache. Abstract class containing common API methods and properties. For details see https://aka.ms/msal-net-client-applications Class to be used to acquire tokens in desktop or mobile applications (Desktop / UWP / Xamarin.iOS / Xamarin.Android). public client applications are not trusted to safely keep application secrets, and therefore they only access Web APIs in the name of the user only. For details see https://aka.ms/msal-net-client-applications Contrary to , public clients are unable to hold configuration time secrets, and as a result have no client secret The redirect URL is pre-proposed by the library. It does not need to be passed in the constructor .NET Core does not support UI, and therefore this platform does not provide the interactive token acquisition methods Flag to enable authentication with the user currently logged-in in Windows. When set to true, the application will try to connect to the corporate network using windows integrated authentication. Constructor of the application. It will use https://login.microsoftonline.com/common as the default authority. Client ID (also known as App ID) of the application as registered in the application registration portal (https://aka.ms/msal-net-register-app)/. REQUIRED Constructor of the application. Client ID (also named Application ID) of the application as registered in the application registration portal (https://aka.ms/msal-net-register-app)/. REQUIRED Authority of the security token service (STS) from which MSAL.NET will acquire the tokens. Usual authorities are: https://login.microsoftonline.com/tenant/, where tenant is the tenant ID of the Azure AD tenant or a domain associated with this Azure AD tenant, in order to sign-in user of a specific organization only https://login.microsoftonline.com/common/ to signing users with any work and school accounts or Microsoft personal account https://login.microsoftonline.com/organizations/ to signing users with any work and school accounts https://login.microsoftonline.com/consumers/ to signing users with only personal Microsoft account (live) Note that this setting needs to be consistent with what is declared in the application registration portal Interactive request to acquire token for the specified scopes. The user is required to select an account Scopes requested to access a protected API Authentication result containing a token for the requested scopes and account The user will be signed-in interactively if needed, and will consent to scopes and do multi-factor authentication if such a policy was enabled in the Azure AD tenant. Interactive request to acquire token for the specified scopes. The user will need to sign-in but an account will be proposed based on the Scopes requested to access a protected API Identifier of the user. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Authentication result containing a token for the requested scopes and account Interactive request to acquire token for the specified scopes. The user will need to sign-in but an account will be proposed based on the provided Scopes requested to access a protected API Account to use for the interactive token acquisition. See for ways to get an account Authentication result containing a token for the requested scopes and account Interactive request to acquire token for a login with control of the UI prompt and possibility of passing extra query parameters like additional claims Scopes requested to access a protected API Identifier of the user. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Authentication result containing a token for the requested scopes and account Interactive request to acquire token for an account with control of the UI prompt and possibility of passing extra query parameters like additional claims Scopes requested to access a protected API Account to use for the interactive token acquisition. See for ways to get an account Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Authentication result containing a token for the requested scopes and account Interactive request to acquire token for a given login, with the possibility of controlling the user experience, passing extra query parameters, providing extra scopes that the user can pre-consent to, and overriding the authority pre-configured in the application Scopes requested to access a protected API Identifier of the user. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Scopes that you can request the end user to consent upfront, in addition to the scopes for the protected Web API for which you want to acquire a security token. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value Authentication result containing a token for the requested scopes and account Interactive request to acquire token for a given account, with the possibility of controlling the user experience, passing extra query parameters, providing extra scopes that the user can pre-consent to, and overriding the authority pre-configured in the application Scopes requested to access a protected API Account to use for the interactive token acquisition. See for ways to get an account Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Scopes that you can request the end user to consent upfront, in addition to the scopes for the protected Web API for which you want to acquire a security token. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value Authentication result containing a token for the requested scopes and account Interactive request to acquire token for the specified scopes. The interactive window will be parented to the specified window. The user will be required to select an account Scopes requested to access a protected API Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and account The user will be signed-in interactively if needed, and will consent to scopes and do multi-factor authentication if such a policy was enabled in the Azure AD tenant. Interactive request to acquire token for the specified scopes. The interactive window will be parented to the specified window. The user will need to sign-in but an account will be proposed based on the Scopes requested to access a protected API Identifier of the user. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and login Interactive request to acquire token for the specified scopes. The user will need to sign-in but an account will be proposed based on the provided Scopes requested to access a protected API Account to use for the interactive token acquisition. See for ways to get an account Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and account Interactive request to acquire token for a login with control of the UI prompt and possiblity of passing extra query parameters like additional claims Scopes requested to access a protected API Identifier of the user. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and account Interactive request to acquire token for an account with control of the UI prompt and possiblity of passing extra query parameters like additional claims Scopes requested to access a protected API Account to use for the interactive token acquisition. See for ways to get an account Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and account Interactive request to acquire token for a given login, with the possibility of controlling the user experience, passing extra query parameters, providing extra scopes that the user can pre-consent to, and overriding the authority pre-configured in the application Scopes requested to access a protected API Identifier of the user. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. scopes that you can request the end user to consent upfront, in addition to the scopes for the protected Web API for which you want to acquire a security token. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and account Interactive request to acquire token for a given account, with the possibility of controlling the user experience, passing extra query parameters, providing extra scopes that the user can pre-consent to, and overriding the authority pre-configured in the application Scopes requested to access a protected API Account to use for the interactive token acquisition. See for ways to get an account Designed interactive experience for the user. This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. scopes that you can request the end user to consent upfront, in addition to the scopes for the protected Web API for which you want to acquire a security token. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value Object containing a reference to the parent window/activity. REQUIRED for Xamarin.Android only. Authentication result containing a token for the requested scopes and account Non-interactive request to acquire a security token from the authority, via Username/Password Authentication. Available only on .net desktop and .net core. See https://aka.ms/msal-net-up for details. Scopes requested to access a protected API Identifier of the user application requests token on behalf. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com User password. Authentication result containing a token for the requested scopes and account Acquires a security token on a device without a Web browser, by letting the user authenticate on another device. This is done in two steps: the method first acquires a device code from the authority and returns it to the caller via the . This callback takes care of interacting with the user to direct them to authenticate (to a specific URL, with a code) The method then proceeds to poll for the security token which is granted upon successful login by the user based on the device code information See https://aka.ms/msal-device-code-flow. Scopes requested to access a protected API Callback containing information to show the user about how to authenticate and enter the device code. Authentication result containing a token for the requested scopes and for the user who has authenticated on another device with the code Acquires a security token on a device without a Web browser, by letting the user authenticate on another device, with possiblity of passing extra parameters. This is done in two steps: the method first acquires a device code from the authority and returns it to the caller via the . This callback takes care of interacting with the user to direct them to authenticate (to a specific URL, with a code) The method then proceeds to poll for the security token which is granted upon successful login by the user based on the device code information See https://aka.ms/msal-device-code-flow. Scopes requested to access a protected API This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. Callback containing information to show the user about how to authenticate and enter the device code. Authentication result containing a token for the requested scopes and for the user who has authenticated on another device with the code Acquires a security token on a device without a Web browser, by letting the user authenticate on another device, with possiblity of cancelling the token acquisition before it times out. This is done in two steps: the method first acquires a device code from the authority and returns it to the caller via the . This callback takes care of interacting with the user to direct them to authenticate (to a specific URL, with a code) The method then proceeds to poll for the security token which is granted upon successful login by the user based on the device code information. This step is cancelable See https://aka.ms/msal-device-code-flow. Scopes requested to access a protected API The callback containing information to show the user about how to authenticate and enter the device code. A CancellationToken which can be triggered to cancel the operation in progress. Authentication result containing a token for the requested scopes and for the user who has authenticated on another device with the code Acquires a security token on a device without a Web browser, by letting the user authenticate on another device, with possiblity of passing extra query parameters and cancelling the token acquisition before it times out. This is done in two steps: the method first acquires a device code from the authority and returns it to the caller via the . This callback takes care of interacting with the user to direct them to authenticate (to a specific URL, with a code) The method then proceeds to poll for the security token which is granted upon successful login by the user based on the device code information. This step is cancelable See https://aka.ms/msal-device-code-flow. Scopes requested to access a protected API This parameter will be appended as is to the query string in the HTTP authentication request to the authority. This is expected to be a string of segments of the form key=value separated by an ampersand character. The parameter can be null. The callback containing information to show the user about how to authenticate and enter the device code. A CancellationToken which can be triggered to cancel the operation in progress. Authentication result containing a token for the requested scopes and for the user who has authenticated on another device with the code Acquires an access token from an existing refresh token and stores it and the refresh token into the application user token cache, where it will be available for further AcquireTokenSilentAsync calls. This method can be used in migration to MSAL from ADAL v2 and in various integration scenarios where you have a RefreshToken available. (see https://aka.ms/msal-net-migration-adal2-msal2) Scope to request from the token endpoint. Setting this to null or empty will request an access token, refresh token and ID token with default scopes The refresh token (for example previously obtained from ADAL 2.x) Non-interactive request to acquire a security token for the signed-in user in Windows, via Integrated Windows Authentication. See https://aka.ms/msal-net-iwa. The account used in this overrides is pulled from the operating system as the current user principal name On Windows Universal Platform, the following capabilities need to be provided: Enterprise Authentication, Private Networks (Client and Server), User Account Information Supported on .net desktop and UWP Scopes requested to access a protected API Authentication result containing a token for the requested scopes and for the currently logged-in user in Windows Non-interactive request to acquire a security token for the signed-in user in Windows, via Integrated Windows Authentication. See https://aka.ms/msal-net-iwa. The account used in this overrides is pulled from the operating system as the current user principal name Scopes requested to access a protected API Identifier of the user account for which to acquire a token with Integrated Windows authentication. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com Authentication result containing a token for the requested scopes and for the currently logged-in user in Windows Constructor to create application instance. This constructor is only available for Desktop and NetCore apps Client id of the application Default authority to be used for the application Instance of TokenCache. Interactive request to acquire a token for the specified scopes. The interactive window will be parented to the specified window. The user will be required to select an account Scopes requested to access a protected API A builder enabling you to add optional parameters before executing the token request The user will be signed-in interactively if needed, and will consent to scopes and do multi-factor authentication if such a policy was enabled in the Azure AD tenant. You can also pass optional parameters by calling: to specify the user experience when signing-in, to specify if you want to use the embedded web browser or the system default browser, or to prevent the select account dialog from appearing in the case you want to sign-in a specific account, WithParentActivityOrWindow to optimize how the browser is shown, e.g. for centering the browser window on the app window. Required on Xamarin.Android if you want to let the user pre-consent to additional scopes (which won't be returned in the access token), to pass additional query parameters to the STS, and one of the overrides of in order to override the default authority set at the application construction. Note that the overriding authority needs to be part of the known authorities added to the application construction Acquires a security token on a device without a Web browser, by letting the user authenticate on another device. This is done in two steps: The method first acquires a device code from the authority and returns it to the caller via the . This callback takes care of interacting with the user to direct them to authenticate (to a specific URL, with a code) The method then proceeds to poll for the security token which is granted upon successful login by the user based on the device code information See https://aka.ms/msal-device-code-flow. Scopes requested to access a protected API Callback containing information to show the user about how to authenticate and enter the device code. A builder enabling you to add optional parameters before executing the token request You can also pass optional parameters by calling: to pass additional query parameters to the STS, and one of the overrides of in order to override the default authority set at the application construction. Note that the overriding authority needs to be part of the known authorities added to the application construction. Non-interactive request to acquire a security token for the signed-in user in Windows, via Integrated Windows Authentication. See https://aka.ms/msal-net-iwa. The account used in this overrides is pulled from the operating system as the current user principal name. Scopes requested to access a protected API A builder enabling you to add optional parameters before executing the token request You can also pass optional parameters by calling: to pass the identifier of the user account for which to acquire a token with Integrated Windows authentication. This is generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com. This is normally not needed, but some Windows administrators set policies preventing applications from looking-up the signed-in user in Windows, and in that case the username needs to be passed. You can also chain with to pass additional query parameters to the STS, and one of the overrides of in order to override the default authority set at the application construction. Note that the overriding authority needs to be part of the known authorities added to the application construction. Non-interactive request to acquire a security token from the authority, via Username/Password Authentication. See https://aka.ms/msal-net-up for details. Scopes requested to access a protected API Identifier of the user application requests token on behalf. Generally in UserPrincipalName (UPN) format, e.g. john.doe@contoso.com User password as a secure string. A builder enabling you to add optional parameters before executing the token request You can also pass optional parameters by chaining the builder with: to pass additional query parameters to the STS, and one of the overrides of in order to override the default authority set at the application construction. Note that the overriding authority needs to be part of the known authorities added to the application construction. Component to be used with confidential client applications like Web Apps/API. This component supports Subject Name + Issuer authentication in order to help, in the future, Azure AD certificates rollover [V2 API] Acquires token from the service for the confidential client using the client credentials flow. (See https://aka.ms/msal-net-client-credentials) This method enables application developers to achieve easy certificates roll-over in Azure AD: this method will send the public certificate to Azure AD along with the token request, so that Azure AD can use it to validate the subject name based on a trusted issuer policy. This saves the application admin from the need to explicitly manage the certificate rollover (either via portal or powershell/CLI operation) Array of scopes requested for resource Authentication result containing application token for the requested scopes [V2 API] Acquires token from the service for the confidential client using the client credentials flow. (See https://aka.ms/msal-net-client-credentials) This method attempts to look up valid access token in the cache unless is true This method enables application developers to achieve easy certificates roll-over in Azure AD: this method will send the public certificate to Azure AD along with the token request, so that Azure AD can use it to validate the subject name based on a trusted issuer policy. This saves the application admin from the need to explicitly manage the certificate rollover (either via portal or powershell/CLI operation) Array of scopes requested for resource If TRUE, API will ignore the access token in the cache and attempt to acquire new access token using client credentials Authentication result containing application token for the requested scopes [V2 API] Acquires token using On-Behalf-Of flow. (See https://aka.ms/msal-net-on-behalf-of) Array of scopes requested for resource Instance of UserAssertion containing user's token. Authentication result containing token of the user for the requested scopes [V2 API] Acquires token using On-Behalf-Of flow. (See https://aka.ms/msal-net-on-behalf-of) Array of scopes requested for resource Instance of UserAssertion containing user's token. Specific authority for which the token is requested. Passing a different value than configured does not change the configured value Authentication result containing token of the user for the requested scopes Structure containing static members that you can use to specify how the interactive overrides of AcquireTokenAsync in should prompt the user. Certificate for a client assertion. This class is used in one of the constructors of . ClientCredential is itself used in the constructor of to pass to Azure AD a shared secret (registered in the Azure AD application) for the constructor of with a certificate, and To understand the difference between public client applications and confidential client applications, see https://aka.ms/msal-net-client-applications Constructor to create certificate information used in to instantiate a used in the constructors of The X509 certificate used as credentials to prove the identity of the application to Azure AD. Gets minimum X509 certificate key size in bits Gets the X509 certificate used as credentials to prove the identity of the application to Azure AD. Meant to be used in confidential client applications, an instance of ClientCredential is passed to the constructors of () as credentials proving that the application (the client) is what it claims it is. These credentials can be either a client secret (an application password) or a certificate. This class has one constructor for each case. These credentials are added in the application registration portal (in the secret section). Constructor of client (application) credentials from a contains information about the certificate previously shared with AAD at application registration to prove the identity of the application (the client) requesting the tokens. Constructor of client (application) credentials from a client secret, also known as the application password. Secret string previously shared with AAD at application registration to prove the identity of the application (the client) requesting the tokens. Checks Android device for chrome packages. Returns true if chrome package for launching system webview is enabled on device. Returns false if chrome package is not found. The following code decides, in a Xamarin.Forms app, which browser to use based on the presence of the required packages. bool useSystemBrowser = UIParent.IsSystemWebviewAvailable(); App.UIParent = new UIParent(Xamarin.Forms.Forms.Context as Activity, !useSystemBrowser); This exception class represents errors that are local to the library or the device. Contrary to which represent errors happening from the Azure AD service or the network. For more details, see https://aka.ms/msal-net-exceptions Initializes a new instance of the exception class with a specified error code. The error code returned by the service or generated by client. This is the code you can rely on for exception handling. Initializes a new instance of the exception class with a specified error code and error message. The error code returned by the service or generated by client. This is the code you can rely on for exception handling. The error message that explains the reason for the exception. Initializes a new instance of the exception class with a specified error code, error message and inner exception. The error code returned by the service or generated by client. This is the code you can rely on for exception handling. The error message that explains the reason for the exception. Error code returned as a property in MsalException Standard OAuth2 protocol error code. It indicates that the application needs to expose the UI to the user so that the user does an interactive action in order to get a new token. Mitigation: If your application is a call AcquireTokenInteractive perform an interactive authentication. If your application is a chances are that the Claims member of the exception is not empty. See for the right mitigation No token was found in the token cache. Mitigation: If your application is a call AcquireTokenInteractive so that the user of your application signs-in and accepts consent. If your application is a .: If it's a Web App you should have previously called as described in https://aka.ms/msal-net-authorization-code. You need to make sure that you have requested the right scopes. For details See https://github.com/Azure-Samples/ms-identity-aspnetcore-webapp-tutorial This error should not happen in Web APIs This error code comes back from calls when a null user is passed as the account parameter. This can be because you have called AcquireTokenSilent with an account parameter set to accounts.FirstOrDefault() but accounts is empty. Mitigation Pass a different account, or otherwise call This error code denotes that no account was found having the given login hint. What happens? or was called with a loginHint parameter which does not match any account in Mitigation If you are certain about the loginHint, call This error code denotes that multiple accounts were found having the same login hint and MSAL cannot choose one. Please use to specify the account This error code comes back from calls when the user cache had not been set in the application constructor. This should never happen in MSAL.NET 3.x as the cache is created by the application One of two conditions was encountered: The Prompt.NoPrompt was passed in an interactive token call, but the constraint could not be honored because user interaction is required, for instance because the user needs to re-sign-in, give consent for more scopes, or perform multiple factor authentication. An error occurred during a silent web authentication that prevented the authentication flow from completing in a short enough time frame. Remediation:call AcquireTokenInteractive so that the user of your application signs-in and accepts consent. Service is unavailable and returned HTTP error code within the range of 500-599 Mitigation you can retry after a delay. The Http Request to the STS timed out. Mitigation you can retry after a delay. loginHint should be a Upn What happens? An override of a token acquisition operation was called in which takes a loginHint as a parameters, but this login hint was not using the UserPrincipalName (UPN) format, e.g. john.doe@contoso.com expected by the service Remediation Make sure in your code that you enforce loginHint to be a UPN No passive auth endpoint was found in the OIDC configuration of the authority What happens? When the libraries go to the authority and get its open id connect configuration it expects to find a Passive Auth Endpoint entry, and could not find it. remediation Check that the authority configured for the application, or passed on some overrides of token acquisition tokens supporting authority override is correct Invalid authority What happens When the library attempts to discover the authority and get the endpoints it needs to acquire a token, it got an un-authorize HTTP code or an unexpected response remediation Check that the authority configured for the application, or passed on some overrides of token acquisition tokens supporting authority override is correct Invalid authority type. MSAL.NET does not know how to interact with the authority specified when the application was built. Mitigation Use a different authority Unknown Error occured. Mitigation None. You might want to inform the end user. Authentication failed. What happens? The authentication failed. For instance the user did not enter the right password Mitigation Inform the user to retry. Authority validation failed. What happens? The validation of the authority failed. This might be because the authority is not compliant with the OIDC standard, or there might be a security issue Mitigation Use a different authority. If you are absolutely sure that you can trust the authority you can use the passing the validateAuthority parameter to false (not recommended) Invalid owner window type. What happens? You used "AcquireTokenInteractiveParameterBuilder.WithParentActivityOrWindow(object) but the parameter you passed is invalid. Remediation On .NET Standard, the expected object is an Activity on Android, a UIViewController on iOS, a NSWindow on MAC, and a IWin32Window or IntPr on Windows. If you are in a WPF application, you can use WindowInteropHelper(wpfControl).Handle to get the window handle associated with a WPF control Invalid service URL. Encoded token too long. What happens In a confidential client application call, the client assertion built by MSAL is longer than the max possible length for a JWT token. No data from STS. User Mismatch. Failed to refresh token. What happens? The token could not be refreshed. This can be because the user has not used the application for a long time. and therefore the refresh token maintained in the token cache has expired Mitigation If you are in a public client application, that supports interactivity, send an interactive request . Otherwise, use a different method to acquire tokens. Failed to acquire token silently. Used in broker scenarios. What happens you called or and your mobile (Xamarin) application leverages the broker (Microsoft Authenticator or Microsoft Company Portal), but the broker was not able to acquire the token silently. Mitigation Call RedirectUri validation failed. What happens? The redirect URI / reply URI is invalid How to fix Pass a valid redirect URI. The request could not be preformed because of an unknown failure in the UI flow.* Mitigation Inform the user. Internal error Accessing WS Metadata Exchange Failed. What happens? You tried to use and the account is a federated account. Mitigation None. The WS metadata was not found or does not correspond to what was expected. Federated service returned error. Mitigation None. The federated service returned an error. You can try to look at the Body of the exception for a better understanding of the error and choose the mitigation User Realm Discovery Failed. Federation Metadata Url is missing for federated user. Parsing WS Metadata Exchange Failed. WS-Trust Endpoint Not Found in Metadata Document. You can get this error when using In the case of a Federated user (that is owned by a federated IdP, as opposed to a managed user owned in an Azure AD tenant) ID3242: The security token could not be authenticated or authorized. The user does not exist or has entered the wrong password What happens You can get this error when using The user is not recognized as a managed user, or a federated user. Azure AD was not able to identify the IdP that needs to process the user Mitigation Inform the user. the login that the user provided might be incorrect. What happens You can get this error when using The user is not known by the IdP Mitigation Inform the user. The login that the user provided might be incorrect (for instance empty) Failed to get user name. Password is required for managed user. What happens? If can got this error when using and you (or the user) did not provide a password. Request is invalid. What happens? This can happen because you are using a token acquisition method which is not compatible with the authority. For instance: you called but you used an authority ending with '/common' or '/consumers' as this requires a tenanted authority or '/organizations'. Mitigation Adjust the authority to the AcquireTokenXX method you use (don't use 'common' or 'consumers' with Cannot access the user from the OS (UWP) What happens You called , but the domain user name could not be found. Mitigation This might be because you need to add more capabilities to your UWP application in the Package.appxmanifest. See https://aka.ms/msal-net-uwp Cannot get the user from the OS (UWP) What happens You called , but the domain user name could not be found. Mitigation This might be because you need to add more capabilities to your UWP application in the Package.appxmanifest. See https://aka.ms/msal-net-uwp An error response was returned by the OAuth2 server and it could not be parsed What happens? In the context of Device code flow (See https://aka.ms/msal-net-device-code-flow), this error happens when the device code expired before the user signed-in on another device (this is usually after 15 mins). Mitigation None. Inform the user that they took too long to sign-in at the provided URL and enter the provided code. Integrated Windows Auth is only supported for "federated" users TODO: UPDATE DOCUMENTATION! On Android, you need to call AcquireTokenInteractiveParameterBuilder.WithParentActivityOrWindow(object) passing the activity. See https://aka.ms/msal-interactive-android Broker response hash did not match Broker response returned an error MSAL is not able to invoke the broker. Possible reasons are the broker is not installed on the user's device, or there were issues with the UiParent or CallerViewController being null. See https://aka.ms/msal-brokers Error code used when the http response returns HttpStatusCode.NotFound ErrorCode used when the http response returns something different from 200 (OK) HttpStatusCode.NotFound have a specific error code. Error code used when the has returned an uri, but it is invalid - it is either null or has no code. Consider throwing an exception if you are unable to intercept the uri containing the code. Error code used when the CustomWebUI has returned an uri, but it does not match the Authroity and AbsolutePath of the configured redirect uri. Access denied. Cannot Access User Information or the user is not a user domain. What happens? You tried to use but the user is not a domain user (the machine is not domain or AAD joined) RedirectUri validation failed. No Redirect URI. What happens? You need to provide a Reply URI / Redirect URI, but have not called Multiple Tokens were matched. What happens?This exception happens in the case of applications managing several identitities, when calling or one of its overrides and the user token cache contains multiple tokens for this client application and the the specified Account, but from different authorities. Mitigation [App Development]specify the authority to use in the acquire token operation Non HTTPS redirects are not supported What happens?This error happens when you have registered a non-https redirect URI for the public client application other than urn:ietf:wg:oauth:2.0:oob Mitigation [App registration and development]Register in the application a Reply URL starting with "https://" The request could not be preformed because the network is down. Mitigation [App development] In the application you could either inform the user that there are network issues or retry later The B2C authority host is not the same as the one used when creating the client application. Duplicate query parameter was found in extraQueryParameters. What happens? You have used extraQueryParameter of overrides of token acquisition operations in public client and confidential client application and are passing a parameter which is already present in the URL (either because you had it in another way, or the library added it). Mitigation [App Development] RemoveAccount the duplicate parameter from the token acquisition override. The request could not be performed because of a failure in the UI flow. What happens?The library failed to invoke the Web View required to perform interactive authentication. The exception might include the reason MitigationIf the exception includes the reason, you could inform the user. This might be, for instance, a browser implementing chrome tabs is missing on the Android phone (that's only an example: this exception can apply to other platforms as well) Authentication canceled. What happens?The user had canceled the authentication, for instance by closing the authentication dialog MitigationNone, you cannot get a token to call the protected API. You might want to inform the user JSON parsing failed. What happens?A Json blob read from the token cache or received from the STS was not parseable. This can happen when reading the token cache, or receiving an IDToken from the STS. MitigationMake sure that the token cache was not tampered JWT was invalid. What happens?The library expected a JWT (for instance a token from the cache, or received from the STS), but the format is invalid MitigationMake sure that the token cache was not tampered State returned from the STS was different from the one sent by the library What happens?The library sends to the STS a state associated to a request, and expects the reply to be consistent. This errors indicates that the reply is not associated with the request. This could indicate an attempt to replay a response Mitigation None Tenant discovery failed. What happens?While reading the openid configuration associated with the authority, the Authorize endpoint, or Token endpoint, or the Issuer was not found MitigationThis indicates and authority which is not Open ID Connect compliant. Specify a different authority in the constructor of the application, or the token acquisition override /// The library is loaded on a platform which is not supported. The active directory authentication error message. Base exception type thrown when an error occurs during token acquisition. For more details, see https://aka.ms/msal-net-exceptions Avoid throwing this exception. Instead throw the more specialized or Initializes a new instance of the exception class. Initializes a new instance of the exception class with a specified error code. The error code returned by the service or generated by the client. This is the code you can rely on for exception handling. Initializes a new instance of the exception class with a specified error code and error message. The error code returned by the service or generated by the client. This is the code you can rely on for exception handling. The error message that explains the reason for the exception. Initializes a new instance of the exception class with a specified error code and a reference to the inner exception that is the cause of this exception. The error code returned by the service or generated by the client. This is the code you can rely on for exception handling. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference if no inner exception is specified. Gets the protocol error code returned by the service or generated by the client. This is the code you can rely on for exception handling. Values for this code are typically provided in constant strings in the derived exceptions types with explanations of mitigation. Creates and returns a string representation of the current exception. A string representation of the current exception. Allows serialization of most values of the exception into JSON. Allows re-hydration of the MsalException (or one of its derived types) from JSON generated by ToJsonString(). Exception type thrown when service returns an error response or other networking errors occur. For more details, see https://aka.ms/msal-net-exceptions Initializes a new instance of the exception class with a specified error code, error message and a reference to the inner exception that is the cause of this exception. The protocol error code returned by the service or generated by client. This is the code you can rely on for exception handling. The error message that explains the reason for the exception. Initializes a new instance of the exception class with a specified error code, error message and a reference to the inner exception that is the cause of this exception. The protocol error code returned by the service or generated by the client. This is the code you can rely on for exception handling. The error message that explains the reason for the exception. Status code of the resposne received from the service. Initializes a new instance of the exception class with a specified error code, error message and a reference to the inner exception that is the cause of this exception. The protocol error code returned by the service or generated by the client. This is the code you can rely on for exception handling. The error message that explains the reason for the exception. The exception that is the cause of the current exception, or a null reference if no inner exception is specified. Initializes a new instance of the exception class with a specified error code, error message and a reference to the inner exception that is the cause of this exception. The protocol error code returned by the service or generated by the client. This is the code you can rely on for exception handling. The error message that explains the reason for the exception. HTTP status code of the resposne received from the service. The exception that is the cause of the current exception, or a null reference if no inner exception is specified. Initializes a new instance of the exception class with a specified error code, error message and a reference to the inner exception that is the cause of this exception. The protocol error code returned by the service or generated by the client. This is the code you can rely on for exception handling. The error message that explains the reason for the exception. The status code of the request. The claims challenge returned back from the service. The exception that is the cause of the current exception, or a null reference if no inner exception is specified. Gets the status code returned from http layer. This status code is either the HttpStatusCode in the inner response or the the NavigateError Event Status Code in a browser based flow (See http://msdn.microsoft.com/en-us/library/bb268233(v=vs.85).aspx). You can use this code for purposes such as implementing retry logic or error investigation. Additional claims requested by the service. When this property is not null or empty, this means that the service requires the user to provide additional claims, such as doing two factor authentication. The are two cases: If your application is a , you should just call and add the modifier. >If your application is a , (therefore doing the On-Behalf-Of flow), you should throw an Http unauthorize exception with a message containing the claims For more details see https://aka.ms/msal-net-claim-challenge Raw response body received from the server. The suberror should not be exposed for public consumption yet, as STS needs to do some work first. Contains the http headers from the server response that indicated an error. When the server returns a 429 Too Many Requests error, a Retry-After should be set. It is important to read and respect the time specified in the Retry-After header to avoid a retry storm. An ID that can used to piece up a single authentication flow. Creates and returns a string representation of the current exception. A string representation of the current exception. This exception class is to inform developers that UI interaction is required for authentication to succeed. It's thrown when calling or one of its overrides, and when the token does not exists in the cache, or the user needs to provide more content, or perform multiple factor authentication based on Azure AD policies, etc.. For more details, see https://aka.ms/msal-net-exceptions Initializes a new instance of the exception class with a specified error code and error message. The error code returned by the service or generated by the client. This is the code you can rely on for exception handling. The error message that explains the reason for the exception. Initializes a new instance of the exception class with a specified error code, error message and inner exception indicating the root cause. The error code returned by the service or generated by the client. This is the code you can rely on for exception handling. The error message that explains the reason for the exception. Represents the root cause of the exception. Optional field, FOCI support. Do not expose these in the MsalException because Evo does not guarantee that the error codes remain the same. OAuth2 errors that are only used internally. All error codes used when propagating exceptions should be made public. Returns the platform / os specific implementation of a PlatformProxy. Gets the platform proxy, which can be used to perform platform specific operations Common operations for extracting platform / operating system specifics Gets the device model. On some TFMs this is not returned for security reasonons. device model or null Gets the upn of the user currently logged into the OS Returns true if the current OS logged in user is AD or AAD joined. Returns the name of the calling assembly Returns the version of the calling assembly Returns a device identifier. Varies by platform. Get the redirect Uri as string, or the a broker specified value Gets the default redirect uri for the platform, which sometimes includes the clientId Provides a high level token cache serialization solution that is similar to the one offered to MSAL customers. Platforms should try to implement if possible, as it provides more granular access. Keeps the 4 token cache dictionaries in memory. Token Cache extensions are responsible for persistance. Structure containing static members that you can use to specify how the interactive overrides of AcquireTokenAsync in should prompt the user. AcquireToken will send prompt=select_account to Azure AD's authorize endpoint which would present to the user a list of accounts from which one can be selected for authentication. The user will be prompted for credentials by the service. It is achieved by sending prompt=login to the Azure AD service. The user will be prompted to consent, even if consent was granted before. It is achieved by sending prompt=consent to Azure AD. Does not request any specific UI to the service, which therefore decides based on the number of signed-in identities. This Prompt is, for the moment, recommended for Azure AD B2C scenarios where the developer does not want the user to re-select the account (for instance when applying policies like EditProfile, or ResetPassword, which should apply to the currently signed-in account. It's not recommended to use this Prompt in Azure AD scenarios at the moment). Only available on .NET platform. AcquireToken will send prompt=attempt_none to Azure AD's authorize endpoint and the library will use a hidden webview (and its cookies) to authenticate the user. This can fail, and in that case a will be thrown. Equals method override to compare Prompt structs object to compare against true if object are equal. Override to compute hashcode hash code of the PromptValue operator overload to equality check first value second value true if the objects are equal operator overload to equality check first value second value true if the objects are not equal Monotonically increasing integer specifying x-ms-cliteleminfo header version Bundle id for server error. Bundle id for server suberror. Bundle id for refresh token age. Floating-point value with a unit of milliseconds Bundle id for spe_ring info. Indicates whether the request was executed on a ring serving SPE traffic. An empty string indicates this occurred on an outer ring, and the string "I" indicates the request occurred on the inner ring Token cache storing access and refresh tokens for accounts This class is used in the constructors of and . In the case of ConfidentialClientApplication, two instances are used, one for the user token cache, and one for the application token cache (in the case of applications using the client credential flows). Constructor of a token cache. This constructor is left for compatibility with MSAL 2.x. The recommended way to get a cache is by using and IConfidentialClientApplication.AppTokenCache once the app is created. This method is so we can inject test ILegacyCachePersistence... Notification for certain token cache interactions during token acquisition. This delegate is used in particular to provide a custom token cache serialization Arguments related to the cache item impacted Notification method called before any library method accesses the cache. Notification method called before any library method writes to the cache. This notification can be used to reload the cache state from a row in database and lock that row. That database row can then be unlocked in the notification. Notification method called after any library method accesses the cache. Gets or sets the flag indicating whether the state of the cache has changed. MSAL methods set this flag after any change. Caller applications should reset the flag after serializing and persisting the state of the cache. Get accounts should not make a network call, if possible. Tries to get the env aliases of the authority for selecting accounts. This can be done without network discovery if all the accounts belong to known envs. If the list becomes stale (i.e. new env is introduced), GetAccounts will perform InstanceDiscovery The list of known envs should not be used in any other scenario! MSAL account removal depends on wheather we have an FRT or not in the cache. If an FRT exists, we can no longer filter by clientID Sets a delegate to be notified before any library method accesses the cache. This gives an option to the delegate to deserialize a cache entry for the application and accounts specified in the . See https://aka.ms/msal-net-token-cache-serialization Delegate set in order to handle the cache deserialiation In the case where the delegate is used to deserialize the cache, it might want to call Sets a delegate to be notified after any library method accesses the cache. This gives an option to the delegate to serialize a cache entry for the application and accounts specified in the . See https://aka.ms/msal-net-token-cache-serialization Delegate set in order to handle the cache serialization in the case where the member of the cache is true In the case where the delegate is used to serialize the cache entierely (not just a row), it might want to call Sets a delegate called before any library method writes to the cache. This gives an option to the delegate to reload the cache state from a row in database and lock that row. That database row can then be unlocked in the delegate registered with Delegate set in order to prepare the cache serialization Serializes the entire token cache in both the ADAL V3 and unified cache formats. Serialized token cache / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Deserializes the token cache from a serialization blob in both format (ADAL V3 format, and unified cache format) Array of bytes containing serialize cache data / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Serializes using the serializer. Obsolete: Please use specialized Serialization methods. replaces . / Is our recommended way of serializing/deserializing. For interoperability with ADAL.NET v3. array of bytes, / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Deserializes the token cache from a serialization blob in the unified cache format Obsolete: Please use specialized Deserialization methods. replaces / Is our recommended way of serializing/deserializing. For interoperability with ADAL.NET v3 Array of bytes containing serialized MSAL.NET V2 cache data / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Is a Json blob containing access tokens, refresh tokens, id tokens and accounts information. Serializes the token cache to the ADAL.NET 3.x cache format. If you need to maintain SSO between an application using ADAL 3.x or MSAL 2.x and this application using MSAL 3.x, you might also want to serialize and deserialize with / or /, otherwise just use /. array of bytes containing the serialized ADAL.NET V3 cache data / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Deserializes the token cache to the ADAL.NET 3.x cache format. If you need to maintain SSO between an application using ADAL 3.x or MSAL 2.x and this application using MSAL 3.x, you might also want to serialize and deserialize with / or /, otherwise just use /. Array of bytes containing serialized Adal.NET V3 cache data / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Serializes the token cache to the MSAL.NET 2.x unified cache format, which is compatible with ADAL.NET v4 and other MSAL.NET v2 applications. If you need to maintain SSO between an application using ADAL 3.x or MSAL 2.x and this application using MSAL 3.x, you might also want to serialize and deserialize with / or /, otherwise just use /. array of bytes containing the serialized MsalV2 cache / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Deserializes the token cache to the MSAL.NET 2.x unified cache format, which is compatible with ADAL.NET v4 and other MSAL.NET v2 applications. If you need to maintain SSO between an application using ADAL 3.x or MSAL 2.x and this application using MSAL 3.x, you might also want to serialize and deserialize with / or /, otherwise just use /. Array of bytes containing serialized MsalV2 cache data Is a Json blob containing access tokens, refresh tokens, id tokens and accounts information. / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. Serializes the token cache, in the MSAL.NET V3 cache format. If you need to maintain SSO between an application using ADAL 3.x or MSAL 2.x and this application using MSAL 3.x, you might also want to serialize and deserialize with / or /, otherwise just use /. Byte stream representation of the cache / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. De-serializes from the MSAL.NET V3 cache format. If you need to maintain SSO between an application using ADAL 3.x or MSAL 2.x and this application using MSAL 3.x, you might also want to serialize and deserialize with / or /, otherwise just use /. Byte stream representation of the cache Set to true to clear MSAL cache contents. Defaults to false. This format is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. / is compatible with other MSAL libraries such as MSAL for Python and MSAL for Java. A string that is added to each Authroization Request and is expected to be sent back along with the authorization code. MSAL is responsible for validating that the state sent is identical to the state received. This is in addition to PKCE, which is validated by the server to ensure that the system redeeming the auth code is the same as the system who asked for it. It protects against XSRF https://openid.net/specs/openid-connect-core-1_0.html Extra validations on the redirect uri, for example system web views cannot work with the urn:oob... uri because there is no way of knowing which app to get back to. Throws if uri is invalid Type containing an assertion representing a user's credentials. This type is used in the On-Behalf-Of flow in confidential client applications, enabling a Web API to request a token for another downsteam API in the name of the user whose credentials are held by this UserAssertion See https://aka.ms/msal-net-on-behalf-of Constructor from a JWT assertion. For other assertion types (SAML), use the other constructor JWT bearer token used to access the Web application itself Constructor of a UserAssertion specifying the assertionType in addition to the assertion Assertion representing the user. Type of the assertion representing the user. Accepted types are currently: urn:ietf:params:oauth:grant-type:jwt-bearerJWT bearer token. Passing this is equivalent to using the other (simpler) constructor urn:ietf:params:oauth:grant-type:saml1_1-bearerSAML 1.1 bearer token urn:ietf:params:oauth:grant-type:jwt-bearerSAML 2 bearer token Gets the assertion. Gets the assertion type. Create an array of bytes representing the UTF-8 encoding of the given string. String to get UTF-8 bytes for Array of UTF-8 character bytes Gets the currently logged in user. Works for Windows when user is AD or AAD joined. Throws otherwise if cannot be found. Platform / OS specific logic. No library (ADAL / MSAL) specific code should go in here. Get the user logged in to Windows or throws Win10 allows several identities to be logged in at once; select the first principal name that can be used The username or throws Considered PII, ensure that it is hashed. Name of the calling application Considered PII, ensure that it is hashed. Version of the calling application Considered PII. Please ensure that it is hashed. Device identifier All continuations must be on the same thread, i.e. ConfigureAwait(true) because the TokenCache calls are under lock() so continuing on different threads will cause deadlocks. Represents a BSON Oid (object id). Gets or sets the value of the Oid. The value of the Oid. Initializes a new instance of the class. The Oid value. Represents a reader that provides fast, non-cached, forward-only access to serialized BSON data. Gets or sets a value indicating whether binary data reading should be compatible with incorrect Json.NET 3.5 written binary. true if binary data reading will be compatible with incorrect Json.NET 3.5 written binary; otherwise, false. Gets or sets a value indicating whether the root object will be read as a JSON array. true if the root object will be read as a JSON array; otherwise, false. Gets or sets the used when reading values from BSON. The used when reading values from BSON. Initializes a new instance of the class. The containing the BSON data to read. Initializes a new instance of the class. The containing the BSON data to read. Initializes a new instance of the class. The containing the BSON data to read. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Initializes a new instance of the class. The containing the BSON data to read. if set to true the root object will be read as a JSON array. The used when reading values from BSON. Reads the next JSON token from the underlying . true if the next token was read successfully; false if there are no more tokens to read. Changes the reader's state to . If is set to true, the underlying is also closed. Represents a writer that provides a fast, non-cached, forward-only way of generating BSON data. Gets or sets the used when writing values to BSON. When set to no conversion will occur. The used when writing values to BSON. Initializes a new instance of the class. The to write to. Initializes a new instance of the class. The to write to. Flushes whatever is in the buffer to the underlying and also flushes the underlying stream. Writes the end. The token. Writes a comment /*...*/ containing the specified text. Text to place inside the comment. Writes the start of a constructor with the given name. The name of the constructor. Writes raw JSON. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes the beginning of a JSON array. Writes the beginning of a JSON object. Writes the property name of a name/value pair on a JSON object. The name of the property. Closes this writer. If is set to true, the underlying is also closed. If is set to true, the JSON is auto-completed. Writes a value. An error will raised if the value cannot be written as a single JSON token. The value to write. Writes a null value. Writes an undefined value. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a [] value. The [] value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a [] value that represents a BSON object id. The Object ID value to write. Writes a BSON regex. The regex pattern. The regex options. Specifies how constructors are used when initializing objects during deserialization by the . First attempt to use the public default constructor, then fall back to a single parameterized constructor, then to the non-public default constructor. Json.NET will use a non-public default constructor before falling back to a parameterized constructor. Converts a binary value to and from a base 64 string value. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON and BSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Creates a custom object. The object type to convert. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Creates an object which will then be populated by the serializer. Type of the object. The created object. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Provides a base class for converting a to and from JSON. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a F# discriminated union type to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from the ISO 8601 date format (e.g. "2008-04-12T12:53Z"). Gets or sets the date time styles used when converting a date to and from JSON. The date time styles used when converting a date to and from JSON. Gets or sets the date time format used when converting a date to and from JSON. The date time format used when converting a date to and from JSON. Gets or sets the culture used when converting a date to and from JSON. The culture used when converting a date to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Converts a to and from a JavaScript Date constructor (e.g. new Date(52231943)). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Converts a to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from JSON and BSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts an to and from its name string value. Gets or sets a value indicating whether the written enum text should be camel case. The default value is false. true if the written enum text will be camel case; otherwise, false. Gets or sets the naming strategy used to resolve how enum text is written. The naming strategy used to resolve how enum text is written. Gets or sets a value indicating whether integer values are allowed when serializing and deserializing. The default value is true. true if integers are allowed when serializing and deserializing; otherwise, false. Initializes a new instance of the class. Initializes a new instance of the class. true if the written enum text will be camel case; otherwise, false. Initializes a new instance of the class. The naming strategy used to resolve how enum text is written. true if integers are allowed when serializing and deserializing; otherwise, false. Initializes a new instance of the class. The of the used to write enum text. Initializes a new instance of the class. The of the used to write enum text. The parameter list to use when constructing the described by . If null, the default constructor is used. When non-null, there must be a constructor defined in the that exactly matches the number, order, and type of these parameters. Initializes a new instance of the class. The of the used to write enum text. The parameter list to use when constructing the described by . If null, the default constructor is used. When non-null, there must be a constructor defined in the that exactly matches the number, order, and type of these parameters. true if integers are allowed when serializing and deserializing; otherwise, false. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Converts a to and from Unix epoch time Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Converts a to and from a string (e.g. "1.2.3.4"). Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing property value of the JSON that is being converted. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Specifies how dates are formatted when writing JSON text. Dates are written in the ISO 8601 format, e.g. "2012-03-21T05:40Z". Dates are written in the Microsoft JSON format, e.g. "\/Date(1198908717056)\/". Specifies how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON text. Date formatted strings are not parsed to a date type and are read as strings. Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed to . Specifies how to treat the time value when converting between string and . Treat as local time. If the object represents a Coordinated Universal Time (UTC), it is converted to the local time. Treat as a UTC. If the object represents a local time, it is converted to a UTC. Treat as a local time if a is being converted to a string. If a string is being converted to , convert to a local time if a time zone is specified. Time zone information should be preserved when converting. The default JSON name table implementation. Initializes a new instance of the class. Gets the string containing the same characters as the specified range of characters in the given array. The character array containing the name to find. The zero-based index into the array specifying the first character of the name. The number of characters in the name. Adds the specified string into name table. The string to add. This method is not thread-safe. Specifies default value handling options for the . Include members where the member value is the same as the member's default value when serializing objects. Included members are written to JSON. Has no effect when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects so that it is not written to JSON. This option will ignore all default values (e.g. null for objects and nullable types; 0 for integers, decimals and floating point numbers; and false for booleans). The default value ignored can be changed by placing the on the property. Members with a default value but no JSON will be set to their default value when deserializing. Ignore members where the member value is the same as the member's default value when serializing objects and set members to their default value when deserializing. Specifies float format handling options when writing special floating point numbers, e.g. , and with . Write special floating point values as strings in JSON, e.g. "NaN", "Infinity", "-Infinity". Write special floating point values as symbols in JSON, e.g. NaN, Infinity, -Infinity. Note that this will produce non-valid JSON. Write special floating point values as the property's default value in JSON, e.g. 0.0 for a property, null for a of property. Specifies how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. Floating point numbers are parsed to . Floating point numbers are parsed to . Specifies formatting options for the . No special formatting is applied. This is the default. Causes child objects to be indented according to the and settings. Provides an interface for using pooled arrays. The array type content. Rent an array from the pool. This array must be returned when it is no longer needed. The minimum required length of the array. The returned array may be longer. The rented array from the pool. This array must be returned when it is no longer needed. Return an array to the pool. The array that is being returned. Provides an interface to enable a class to return line and position information. Gets a value indicating whether the class can return line information. true if and can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, when returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, when returns false). Instructs the how to serialize the collection. Gets or sets a value indicating whether null items are allowed in the collection. true if null items are allowed in the collection; otherwise, false. Initializes a new instance of the class. Initializes a new instance of the class with a flag indicating whether the array can contain null items. A flag indicating whether the array can contain null items. Initializes a new instance of the class with the specified container Id. The container Id. Instructs the to use the specified constructor when deserializing that object. Instructs the how to serialize the object. Gets or sets the id. The id. Gets or sets the title. The title. Gets or sets the description. The description. Gets or sets the collection's items converter. The collection's items converter. The parameter list to use when constructing the described by . If null, the default constructor is used. When non-null, there must be a constructor defined in the that exactly matches the number, order, and type of these parameters. [JsonContainer(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] Gets or sets the of the . The of the . The parameter list to use when constructing the described by . If null, the default constructor is used. When non-null, there must be a constructor defined in the that exactly matches the number, order, and type of these parameters. [JsonContainer(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] Gets or sets a value that indicates whether to preserve object references. true to keep object reference; otherwise, false. The default is false. Gets or sets a value that indicates whether to preserve collection's items references. true to keep collection's items object references; otherwise, false. The default is false. Gets or sets the reference loop handling used when serializing the collection's items. The reference loop handling. Gets or sets the type name handling used when serializing the collection's items. The type name handling. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. Provides methods for converting between .NET types and JSON types. Gets or sets a function that creates default . Default settings are automatically used by serialization methods on , and and on . To serialize without using any default settings create a with . Represents JavaScript's boolean value true as a string. This field is read-only. Represents JavaScript's boolean value false as a string. This field is read-only. Represents JavaScript's null as a string. This field is read-only. Represents JavaScript's undefined as a string. This field is read-only. Represents JavaScript's positive infinity as a string. This field is read-only. Represents JavaScript's negative infinity as a string. This field is read-only. Represents JavaScript's NaN as a string. This field is read-only. Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. The time zone handling when the date is converted to a string. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation using the specified. The value to convert. The format the date will be converted to. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. The string delimiter character. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. The string delimiter character. The string escape handling. A JSON string representation of the . Converts the to its JSON string representation. The value to convert. A JSON string representation of the . Serializes the specified object to a JSON string. The object to serialize. A JSON string representation of the object. Serializes the specified object to a JSON string using formatting. The object to serialize. Indicates how the output should be formatted. A JSON string representation of the object. Serializes the specified object to a JSON string using a collection of . The object to serialize. A collection of converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using formatting and a collection of . The object to serialize. Indicates how the output should be formatted. A collection of converters used while serializing. A JSON string representation of the object. Serializes the specified object to a JSON string using . The object to serialize. The used to serialize the object. If this is null, default serialization settings will be used. A JSON string representation of the object. Serializes the specified object to a JSON string using a type, formatting and . The object to serialize. The used to serialize the object. If this is null, default serialization settings will be used. The type of the value being serialized. This parameter is used when is to write out the type name if the type of the value does not match. Specifying the type is optional. A JSON string representation of the object. Serializes the specified object to a JSON string using formatting and . The object to serialize. Indicates how the output should be formatted. The used to serialize the object. If this is null, default serialization settings will be used. A JSON string representation of the object. Serializes the specified object to a JSON string using a type, formatting and . The object to serialize. Indicates how the output should be formatted. The used to serialize the object. If this is null, default serialization settings will be used. The type of the value being serialized. This parameter is used when is to write out the type name if the type of the value does not match. Specifying the type is optional. A JSON string representation of the object. Deserializes the JSON to a .NET object. The JSON to deserialize. The deserialized object from the JSON string. Deserializes the JSON to a .NET object using . The JSON to deserialize. The used to deserialize the object. If this is null, default serialization settings will be used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The JSON to deserialize. The of object being deserialized. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type. The type of the object to deserialize to. The JSON to deserialize. The deserialized object from the JSON string. Deserializes the JSON to the given anonymous type. The anonymous type to deserialize to. This can't be specified traditionally and must be inferred from the anonymous type passed as a parameter. The JSON to deserialize. The anonymous type object. The deserialized anonymous type from the JSON string. Deserializes the JSON to the given anonymous type using . The anonymous type to deserialize to. This can't be specified traditionally and must be inferred from the anonymous type passed as a parameter. The JSON to deserialize. The anonymous type object. The used to deserialize the object. If this is null, default serialization settings will be used. The deserialized anonymous type from the JSON string. Deserializes the JSON to the specified .NET type using a collection of . The type of the object to deserialize to. The JSON to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type using . The type of the object to deserialize to. The object to deserialize. The used to deserialize the object. If this is null, default serialization settings will be used. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type using a collection of . The JSON to deserialize. The type of the object to deserialize. Converters to use while deserializing. The deserialized object from the JSON string. Deserializes the JSON to the specified .NET type using . The JSON to deserialize. The type of the object to deserialize to. The used to deserialize the object. If this is null, default serialization settings will be used. The deserialized object from the JSON string. Populates the object with values from the JSON string. The JSON to populate values from. The target object to populate values onto. Populates the object with values from the JSON string using . The JSON to populate values from. The target object to populate values onto. The used to deserialize the object. If this is null, default serialization settings will be used. Converts an object to and from JSON. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Gets a value indicating whether this can read JSON. true if this can read JSON; otherwise, false. Gets a value indicating whether this can write JSON. true if this can write JSON; otherwise, false. Converts an object to and from JSON. The object type to convert. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Writes the JSON representation of the object. The to write to. The value. The calling serializer. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. The calling serializer. The object value. Reads the JSON representation of the object. The to read from. Type of the object. The existing value of object being read. If there is no existing value then null will be used. The existing value has a value. The calling serializer. The object value. Determines whether this instance can convert the specified object type. Type of the object. true if this instance can convert the specified object type; otherwise, false. Instructs the to use the specified when serializing the member or class. Gets the of the . The of the . The parameter list to use when constructing the described by . If null, the default constructor is used. Initializes a new instance of the class. Type of the . Initializes a new instance of the class. Type of the . Parameter list to use when constructing the . Can be null. Represents a collection of . Instructs the how to serialize the collection. Initializes a new instance of the class. Initializes a new instance of the class with the specified container Id. The container Id. The exception thrown when an error occurs during JSON serialization or deserialization. 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 exception that is the cause of the current exception, or null if no inner exception is specified. Instructs the to deserialize properties with no matching class member into the specified collection and write values during serialization. Gets or sets a value that indicates whether to write extension data when serializing the object. true to write extension data when serializing the object; otherwise, false. The default is true. Gets or sets a value that indicates whether to read extension data when deserializing the object. true to read extension data when deserializing the object; otherwise, false. The default is true. Initializes a new instance of the class. Instructs the not to serialize the public field or public read/write property value. Base class for a table of atomized string objects. Gets the string containing the same characters as the specified range of characters in the given array. The character array containing the name to find. The zero-based index into the array specifying the first character of the name. The number of characters in the name. Instructs the how to serialize the object. Gets or sets the member serialization. The member serialization. Gets or sets how the object's properties with null values are handled during serialization and deserialization. How the object's properties with null values are handled during serialization and deserialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Initializes a new instance of the class. Initializes a new instance of the class with the specified member serialization. The member serialization. Initializes a new instance of the class with the specified container Id. The container Id. Instructs the to always serialize the member with the specified name. Gets or sets the type used when serializing the property's collection items. The collection's items type. The parameter list to use when constructing the described by . If null, the default constructor is used. When non-null, there must be a constructor defined in the that exactly matches the number, order, and type of these parameters. [JsonProperty(ItemConverterType = typeof(MyContainerConverter), ItemConverterParameters = new object[] { 123, "Four" })] Gets or sets the of the . The of the . The parameter list to use when constructing the described by . If null, the default constructor is used. When non-null, there must be a constructor defined in the that exactly matches the number, order, and type of these parameters. [JsonProperty(NamingStrategyType = typeof(MyNamingStrategy), NamingStrategyParameters = new object[] { 123, "Four" })] Gets or sets the null value handling used when serializing this property. The null value handling. Gets or sets the default value handling used when serializing this property. The default value handling. Gets or sets the reference loop handling used when serializing this property. The reference loop handling. Gets or sets the object creation handling used when deserializing this property. The object creation handling. Gets or sets the type name handling used when serializing this property. The type name handling. Gets or sets whether this property's value is serialized as a reference. Whether this property's value is serialized as a reference. Gets or sets the order of serialization of a member. The numeric order of serialization. Gets or sets a value indicating whether this property is required. A value indicating whether this property is required. Gets or sets the name of the property. The name of the property. Gets or sets the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. Gets or sets the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. Initializes a new instance of the class. Initializes a new instance of the class with the specified name. Name of the property. Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. Asynchronously reads the next JSON token from the source. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns true if the next token was read successfully; false if there are no more tokens to read. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously skips the children of the current token. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously reads the next JSON token from the source as a of . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the of . This result will be null at the end of an array. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously reads the next JSON token from the source as a []. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the []. This result will be null at the end of an array. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously reads the next JSON token from the source as a of . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the of . This result will be null at the end of an array. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously reads the next JSON token from the source as a of . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the of . This result will be null at the end of an array. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously reads the next JSON token from the source as a of . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the of . This result will be null at the end of an array. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously reads the next JSON token from the source as a of . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the of . This result will be null at the end of an array. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously reads the next JSON token from the source as a of . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the of . This result will be null at the end of an array. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously reads the next JSON token from the source as a . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the . This result will be null at the end of an array. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Specifies the state of the reader. A read method has not been called. The end of the file has been reached successfully. Reader is at a property. Reader is at the start of an object. Reader is in an object. Reader is at the start of an array. Reader is in an array. The method has been called. Reader has just read a value. Reader is at the start of a constructor. Reader is in a constructor. An error occurred that prevents the read operation from continuing. The end of the file has been reached successfully. Gets the current reader state. The current reader state. Gets or sets a value indicating whether the source should be closed when this reader is closed. true to close the source when this reader is closed; otherwise false. The default is true. Gets or sets a value indicating whether multiple pieces of JSON content can be read from a continuous stream without erroring. true to support reading multiple pieces of JSON content; otherwise false. The default is false. Gets the quotation mark character used to enclose the value of a string. Gets or sets how time zones are handled when reading JSON. Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. Gets or sets how custom date formatted strings are parsed when reading JSON. Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . Gets the type of the current JSON token. Gets the text value of the current JSON token. Gets the .NET type for the current JSON token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets or sets the culture used when reading JSON. Defaults to . Initializes a new instance of the class. Reads the next JSON token from the source. true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the source as a of . A of . This method will return null at the end of an array. Reads the next JSON token from the source as a . A . This method will return null at the end of an array. Reads the next JSON token from the source as a []. A [] or null if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the source as a of . A of . This method will return null at the end of an array. Reads the next JSON token from the source as a of . A of . This method will return null at the end of an array. Reads the next JSON token from the source as a of . A of . This method will return null at the end of an array. Reads the next JSON token from the source as a of . A of . This method will return null at the end of an array. Reads the next JSON token from the source as a of . A of . This method will return null at the end of an array. Skips the children of the current token. Sets the current token. The new token. Sets the current token and value. The new token. The value. Sets the current token and value. The new token. The value. A flag indicating whether the position index inside an array should be updated. Sets the state based on current token type. Releases unmanaged and - optionally - managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Changes the reader's state to . If is set to true, the source is also closed. The exception thrown when an error occurs while reading JSON text. Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. 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 exception that is the cause of the current exception, or null if no inner exception is specified. Initializes a new instance of the class with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. The line number indicating where the error occurred. The line position indicating where the error occurred. The exception that is the cause of the current exception, or null if no inner exception is specified. Instructs the to always serialize the member, and to require that the member has a value. The exception thrown when an error occurs during JSON serialization or deserialization. Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. 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 exception that is the cause of the current exception, or null if no inner exception is specified. Initializes a new instance of the class with a specified error message, JSON path, line number, line position, 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 path to the JSON where the error occurred. The line number indicating where the error occurred. The line position indicating where the error occurred. The exception that is the cause of the current exception, or null if no inner exception is specified. Serializes and deserializes objects into and from the JSON format. The enables you to control how objects are encoded into JSON. Occurs when the errors during serialization and deserialization. Gets or sets the used by the serializer when resolving references. Gets or sets the used by the serializer when resolving type names. Gets or sets the used by the serializer when writing trace messages. The trace writer. Gets or sets the equality comparer used by the serializer when comparing references. The equality comparer. Gets or sets how type name writing and reading is handled by the serializer. The default value is . should be used with caution when your application deserializes JSON from an external source. Incoming types should be validated with a custom when deserializing with a value other than . Gets or sets how a type name assembly is written and resolved by the serializer. The default value is . The type name assembly format. Gets or sets how a type name assembly is written and resolved by the serializer. The default value is . The type name assembly format. Gets or sets how object references are preserved by the serializer. The default value is . Gets or sets how reference loops (e.g. a class referencing itself) is handled. The default value is . Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. The default value is . Gets or sets how null values are handled during serialization and deserialization. The default value is . Gets or sets how default values are handled during serialization and deserialization. The default value is . Gets or sets how objects are created during deserialization. The default value is . The object creation handling. Gets or sets how constructors are used during deserialization. The default value is . The constructor handling. Gets or sets how metadata properties are used during deserialization. The default value is . The metadata properties handling. Gets a collection that will be used during serialization. Collection that will be used during serialization. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Indicates how JSON text output is formatted. The default value is . Gets or sets how dates are written to JSON text. The default value is . Gets or sets how time zones are handled during serialization and deserialization. The default value is . Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. The default value is . Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. The default value is . Gets or sets how special floating point numbers, e.g. , and , are written as JSON text. The default value is . Gets or sets how strings are escaped when writing JSON text. The default value is . Gets or sets how and values are formatted when writing JSON text, and the expected date format when reading JSON text. The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". Gets or sets the culture used when reading JSON. The default value is . Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. The default value is null. Gets a value indicating whether there will be a check for additional JSON content after deserializing an object. The default value is false. true if there will be a check for additional JSON content after deserializing an object; otherwise, false. Initializes a new instance of the class. Creates a new instance. The will not use default settings from . A new instance. The will not use default settings from . Creates a new instance using the specified . The will not use default settings from . The settings to be applied to the . A new instance using the specified . The will not use default settings from . Creates a new instance. The will use default settings from . A new instance. The will use default settings from . Creates a new instance using the specified . The will use default settings from as well as the specified . The settings to be applied to the . A new instance using the specified . The will use default settings from as well as the specified . Populates the JSON values onto the target object. The that contains the JSON structure to read values from. The target object to populate values onto. Populates the JSON values onto the target object. The that contains the JSON structure to read values from. The target object to populate values onto. Deserializes the JSON structure contained by the specified . The that contains the JSON structure to deserialize. The being deserialized. Deserializes the JSON structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Deserializes the JSON structure contained by the specified into an instance of the specified type. The containing the object. The type of the object to deserialize. The instance of being deserialized. Deserializes the JSON structure contained by the specified into an instance of the specified type. The containing the object. The of object being deserialized. The instance of being deserialized. Serializes the specified and writes the JSON structure using the specified . The used to write the JSON structure. The to serialize. Serializes the specified and writes the JSON structure using the specified . The used to write the JSON structure. The to serialize. The type of the value being serialized. This parameter is used when is to write out the type name if the type of the value does not match. Specifying the type is optional. Serializes the specified and writes the JSON structure using the specified . The used to write the JSON structure. The to serialize. The type of the value being serialized. This parameter is used when is Auto to write out the type name if the type of the value does not match. Specifying the type is optional. Serializes the specified and writes the JSON structure using the specified . The used to write the JSON structure. The to serialize. Specifies the settings on a object. Gets or sets how reference loops (e.g. a class referencing itself) are handled. The default value is . Reference loop handling. Gets or sets how missing members (e.g. JSON contains a property that isn't a member on the object) are handled during deserialization. The default value is . Missing member handling. Gets or sets how objects are created during deserialization. The default value is . The object creation handling. Gets or sets how null values are handled during serialization and deserialization. The default value is . Null value handling. Gets or sets how default values are handled during serialization and deserialization. The default value is . The default value handling. Gets or sets a collection that will be used during serialization. The converters. Gets or sets how object references are preserved by the serializer. The default value is . The preserve references handling. Gets or sets how type name writing and reading is handled by the serializer. The default value is . should be used with caution when your application deserializes JSON from an external source. Incoming types should be validated with a custom when deserializing with a value other than . The type name handling. Gets or sets how metadata properties are used during deserialization. The default value is . The metadata properties handling. Gets or sets how a type name assembly is written and resolved by the serializer. The default value is . The type name assembly format. Gets or sets how a type name assembly is written and resolved by the serializer. The default value is . The type name assembly format. Gets or sets how constructors are used during deserialization. The default value is . The constructor handling. Gets or sets the contract resolver used by the serializer when serializing .NET objects to JSON and vice versa. The contract resolver. Gets or sets the equality comparer used by the serializer when comparing references. The equality comparer. Gets or sets the used by the serializer when resolving references. The reference resolver. Gets or sets a function that creates the used by the serializer when resolving references. A function that creates the used by the serializer when resolving references. Gets or sets the used by the serializer when writing trace messages. The trace writer. Gets or sets the used by the serializer when resolving type names. The binder. Gets or sets the error handler called during serialization and deserialization. The error handler called during serialization and deserialization. Gets or sets the used by the serializer when invoking serialization callback methods. The context. Gets or sets how and values are formatted when writing JSON text, and the expected date format when reading JSON text. The default value is "yyyy'-'MM'-'dd'T'HH':'mm':'ss.FFFFFFFK". Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. The default value is null. Indicates how JSON text output is formatted. The default value is . Gets or sets how dates are written to JSON text. The default value is . Gets or sets how time zones are handled during serialization and deserialization. The default value is . Gets or sets how date formatted strings, e.g. "\/Date(1198908717056)\/" and "2012-03-21T05:40Z", are parsed when reading JSON. The default value is . Gets or sets how special floating point numbers, e.g. , and , are written as JSON. The default value is . Gets or sets how floating point numbers, e.g. 1.0 and 9.9, are parsed when reading JSON text. The default value is . Gets or sets how strings are escaped when writing JSON text. The default value is . Gets or sets the culture used when reading JSON. The default value is . Gets a value indicating whether there will be a check for additional content after deserializing an object. The default value is false. true if there will be a check for additional content after deserializing an object; otherwise, false. Initializes a new instance of the class. Represents a reader that provides fast, non-cached, forward-only access to JSON text data. Asynchronously reads the next JSON token from the source. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns true if the next token was read successfully; false if there are no more tokens to read. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously reads the next JSON token from the source as a of . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the of . This result will be null at the end of an array. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously reads the next JSON token from the source as a []. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the []. This result will be null at the end of an array. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously reads the next JSON token from the source as a of . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the of . This result will be null at the end of an array. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously reads the next JSON token from the source as a of . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the of . This result will be null at the end of an array. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously reads the next JSON token from the source as a of . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the of . This result will be null at the end of an array. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously reads the next JSON token from the source as a of . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the of . This result will be null at the end of an array. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously reads the next JSON token from the source as a of . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the of . This result will be null at the end of an array. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously reads the next JSON token from the source as a . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous read. The property returns the . This result will be null at the end of an array. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Initializes a new instance of the class with the specified . The containing the JSON data to read. Gets or sets the reader's property name table. Gets or sets the reader's character buffer pool. Reads the next JSON token from the underlying . true if the next token was read successfully; false if there are no more tokens to read. Reads the next JSON token from the underlying as a of . A of . This method will return null at the end of an array. Reads the next JSON token from the underlying as a of . A of . This method will return null at the end of an array. Reads the next JSON token from the underlying as a . A . This method will return null at the end of an array. Reads the next JSON token from the underlying as a []. A [] or null if the next JSON token is null. This method will return null at the end of an array. Reads the next JSON token from the underlying as a of . A of . This method will return null at the end of an array. Reads the next JSON token from the underlying as a of . A of . This method will return null at the end of an array. Reads the next JSON token from the underlying as a of . A of . This method will return null at the end of an array. Reads the next JSON token from the underlying as a of . A of . This method will return null at the end of an array. Changes the reader's state to . If is set to true, the underlying is also closed. Gets a value indicating whether the class can return line information. true if and can be provided; otherwise, false. Gets the current line number. The current line number or 0 if no line information is available (for example, returns false). Gets the current line position. The current line position or 0 if no line information is available (for example, returns false). Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes the JSON value delimiter. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes the specified end token. The end token to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously closes this writer. If is set to true, the destination is also closed. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes the end of the current JSON object or array. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes indent characters. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes an indent space. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes raw JSON without changing the writer's state. The raw JSON to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a null value. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes the property name of a name/value pair of a JSON object. The name of the property. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes the property name of a name/value pair of a JSON object. The name of the property. A flag to indicate whether the text should be escaped when it is written as a JSON property name. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes the beginning of a JSON array. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes the beginning of a JSON object. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes the start of a constructor with the given name. The name of the constructor. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes an undefined value. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes the given white space. The string of white space characters. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a [] value. The [] value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes a comment /*...*/ containing the specified text. Text to place inside the comment. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes the end of an array. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes the end of a constructor. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes the end of a JSON object. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Asynchronously writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. Derived classes must override this method to get asynchronous behaviour. Otherwise it will execute synchronously, returning an already-completed task. Gets or sets the writer's character array pool. Gets or sets how many s to write for each level in the hierarchy when is set to . Gets or sets which character to use to quote attribute values. Gets or sets which character to use for indenting when is set to . Gets or sets a value indicating whether object names will be surrounded with quotes. Initializes a new instance of the class using the specified . The to write to. Flushes whatever is in the buffer to the underlying and also flushes the underlying . Closes this writer. If is set to true, the underlying is also closed. If is set to true, the JSON is auto-completed. Writes the beginning of a JSON object. Writes the beginning of a JSON array. Writes the start of a constructor with the given name. The name of the constructor. Writes the specified end token. The end token to write. Writes the property name of a name/value pair on a JSON object. The name of the property. Writes the property name of a name/value pair on a JSON object. The name of the property. A flag to indicate whether the text should be escaped when it is written as a JSON property name. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a value. An error will raised if the value cannot be written as a single JSON token. The value to write. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a of value. The of value to write. Writes a value. The value to write. Writes a of value. The of value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a [] value. The [] value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a comment /*...*/ containing the specified text. Text to place inside the comment. Writes the given white space. The string of white space characters. Specifies the type of JSON token. This is returned by the if a read method has not been called. An object start token. An array start token. A constructor start token. An object property name. A comment. Raw JSON. An integer. A float. A string. A boolean. A null token. An undefined token. An object end token. An array end token. A constructor end token. A Date. Byte data. Represents a reader that provides validation. JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. Sets an event handler for receiving schema validation errors. Gets the text value of the current JSON token. Gets the depth of the current token in the JSON document. The depth of the current token in the JSON document. Gets the path of the current JSON token. Gets the quotation mark character used to enclose the value of a string. Gets the type of the current JSON token. Gets the .NET type for the current JSON token. Initializes a new instance of the class that validates the content returned from the given . The to read from while validating. Gets or sets the schema. The schema. Gets the used to construct this . The specified in the constructor. Changes the reader's state to . If is set to true, the underlying is also closed. Reads the next JSON token from the underlying as a of . A of . Reads the next JSON token from the underlying as a []. A [] or null if the next JSON token is null. Reads the next JSON token from the underlying as a of . A of . Reads the next JSON token from the underlying as a of . A of . Reads the next JSON token from the underlying as a of . A of . Reads the next JSON token from the underlying as a . A . This method will return null at the end of an array. Reads the next JSON token from the underlying as a of . A of . This method will return null at the end of an array. Reads the next JSON token from the underlying as a of . A of . Reads the next JSON token from the underlying . true if the next token was read successfully; false if there are no more tokens to read. Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. Asynchronously closes this writer. If is set to true, the destination is also closed. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously flushes whatever is in the buffer to the destination and also flushes the destination. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the specified end token. The end token to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes indent characters. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the JSON value delimiter. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes an indent space. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes raw JSON without changing the writer's state. The raw JSON to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the end of the current JSON object or array. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the end of an array. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the end of a constructor. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the end of a JSON object. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a null value. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the property name of a name/value pair of a JSON object. The name of the property. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the property name of a name/value pair of a JSON object. The name of the property. A flag to indicate whether the text should be escaped when it is written as a JSON property name. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the beginning of a JSON array. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a comment /*...*/ containing the specified text. Text to place inside the comment. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the start of a constructor with the given name. The name of the constructor. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the beginning of a JSON object. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the current token. The to read the token from. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the current token. The to read the token from. A flag indicating whether the current token's children should be written. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the token and its value. The to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the token and its value. The to write. The value to write. A value is only required for tokens that have an associated value, e.g. the property name for . null can be passed to the method for tokens that don't have a value, e.g. . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a [] value. The [] value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a value. The value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes a of value. The of value to write. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes an undefined value. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously writes the given white space. The string of white space characters. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Asynchronously ets the state of the . The being written. The value being written. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous operation. The default behaviour is to execute synchronously, returning an already-completed task. Derived classes can override this behaviour for true asynchronicity. Gets or sets a value indicating whether the destination should be closed when this writer is closed. true to close the destination when this writer is closed; otherwise false. The default is true. Gets or sets a value indicating whether the JSON should be auto-completed when this writer is closed. true to auto-complete the JSON when this writer is closed; otherwise false. The default is true. Gets the top. The top. Gets the state of the writer. Gets the path of the writer. Gets or sets a value indicating how JSON text output should be formatted. Gets or sets how dates are written to JSON text. Gets or sets how time zones are handled when writing JSON text. Gets or sets how strings are escaped when writing JSON text. Gets or sets how special floating point numbers, e.g. , and , are written to JSON text. Gets or sets how and values are formatted when writing JSON text. Gets or sets the culture used when writing JSON. Defaults to . Initializes a new instance of the class. Flushes whatever is in the buffer to the destination and also flushes the destination. Closes this writer. If is set to true, the destination is also closed. If is set to true, the JSON is auto-completed. Writes the beginning of a JSON object. Writes the end of a JSON object. Writes the beginning of a JSON array. Writes the end of an array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end constructor. Writes the property name of a name/value pair of a JSON object. The name of the property. Writes the property name of a name/value pair of a JSON object. The name of the property. A flag to indicate whether the text should be escaped when it is written as a JSON property name. Writes the end of the current JSON object or array. Writes the current token and its children. The to read the token from. Writes the current token. The to read the token from. A flag indicating whether the current token's children should be written. Writes the token and its value. The to write. The value to write. A value is only required for tokens that have an associated value, e.g. the property name for . null can be passed to the method for tokens that don't have a value, e.g. . Writes the token. The to write. Writes the specified end token. The end token to write. Writes indent characters. Writes the JSON value delimiter. Writes an indent space. Writes a null value. Writes an undefined value. Writes raw JSON without changing the writer's state. The raw JSON to write. Writes raw JSON where a value is expected and updates the writer's state. The raw JSON to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a of value. The of value to write. Writes a [] value. The [] value to write. Writes a value. The value to write. Writes a value. An error will raised if the value cannot be written as a single JSON token. The value to write. Writes a comment /*...*/ containing the specified text. Text to place inside the comment. Writes the given white space. The string of white space characters. Releases unmanaged and - optionally - managed resources. true to release both managed and unmanaged resources; false to release only unmanaged resources. Sets the state of the . The being written. The value being written. The exception thrown when an error occurs while writing JSON text. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. 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 exception that is the cause of the current exception, or null if no inner exception is specified. Initializes a new instance of the class with a specified error message, JSON path 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 path to the JSON where the error occurred. The exception that is the cause of the current exception, or null if no inner exception is specified. Specifies how JSON comments are handled when loading JSON. Ignore comments. Load comments as a with type . Contains the LINQ to JSON extension methods. Returns a collection of tokens that contains the ancestors of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the ancestors of every token in the source collection. Returns a collection of tokens that contains every token in the source collection, and the ancestors of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains every token in the source collection, the ancestors of every token in the source collection. Returns a collection of tokens that contains the descendants of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains the descendants of every token in the source collection. Returns a collection of tokens that contains every token in the source collection, and the descendants of every token in the source collection. The type of the objects in source, constrained to . An of that contains the source collection. An of that contains every token in the source collection, and the descendants of every token in the source collection. Returns a collection of child properties of every object in the source collection. An of that contains the source collection. An of that contains the properties of every object in the source collection. Returns a collection of child values of every object in the source collection with the given key. An of that contains the source collection. The token key. An of that contains the values of every token in the source collection with the given key. Returns a collection of child values of every object in the source collection. An of that contains the source collection. An of that contains the values of every token in the source collection. Returns a collection of converted child values of every object in the source collection with the given key. The type to convert the values to. An of that contains the source collection. The token key. An that contains the converted values of every token in the source collection with the given key. Returns a collection of converted child values of every object in the source collection. The type to convert the values to. An of that contains the source collection. An that contains the converted values of every token in the source collection. Converts the value. The type to convert the value to. A cast as a of . A converted value. Converts the value. The source collection type. The type to convert the value to. A cast as a of . A converted value. Returns a collection of child tokens of every array in the source collection. The source collection type. An of that contains the source collection. An of that contains the values of every token in the source collection. Returns a collection of converted child tokens of every array in the source collection. An of that contains the source collection. The type to convert the values to. The source collection type. An that contains the converted values of every token in the source collection. Returns the input typed as . An of that contains the source collection. The input typed as . Returns the input typed as . The source collection type. An of that contains the source collection. The input typed as . Represents a collection of objects. The type of token. Gets the of with the specified key. Represents a JSON array. Writes this token to a asynchronously. A into which this method will write. The token to monitor for cancellation requests. A collection of which will be used when writing the token. A that represents the asynchronous write operation. Asynchronously loads a from a . A that will be read for the content of the . If this is null, default load settings will be used. The token to monitor for cancellation requests. The default value is . A representing the asynchronous load. The property contains the JSON that was read from the specified . Asynchronously loads a from a . A that will be read for the content of the . The used to load the JSON. If this is null, default load settings will be used. The token to monitor for cancellation requests. The default value is . A representing the asynchronous load. The property contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets the node type for this . The type. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the array. Initializes a new instance of the class with the specified content. The contents of the array. Loads an from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Loads an from a . A that will be read for the content of the . The used to load the JSON. If this is null, default load settings will be used. A that contains the JSON that was read from the specified . Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Load a from a string that contains JSON. A that contains JSON. The used to load the JSON. If this is null, default load settings will be used. A populated from the string that contains JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object. Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Gets the with the specified key. The with the specified key. Gets or sets the at the specified index. Determines the index of a specific item in the . The object to locate in the . The index of if found in the list; otherwise, -1. Inserts an item to the at the specified index. The zero-based index at which should be inserted. The object to insert into the . is not a valid index in the . Removes the item at the specified index. The zero-based index of the item to remove. is not a valid index in the . Returns an enumerator that iterates through the collection. A of that can be used to iterate through the collection. Adds an item to the . The object to add to the . Removes all items from the . Determines whether the contains a specific value. The object to locate in the . true if is found in the ; otherwise, false. Copies the elements of the to an array, starting at a particular array index. The array. Index of the array. Gets a value indicating whether the is read-only. true if the is read-only; otherwise, false. Removes the first occurrence of a specific object from the . The object to remove from the . true if was successfully removed from the ; otherwise, false. This method also returns false if is not found in the original . Represents a JSON constructor. Writes this token to a asynchronously. A into which this method will write. The token to monitor for cancellation requests. A collection of which will be used when writing the token. A that represents the asynchronous write operation. Asynchronously loads a from a . A that will be read for the content of the . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous load. The property returns a that contains the JSON that was read from the specified . Asynchronously loads a from a . A that will be read for the content of the . The used to load the JSON. If this is null, default load settings will be used. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous load. The property returns a that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets or sets the name of this constructor. The constructor name. Gets the node type for this . The type. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name and content. The constructor name. The contents of the constructor. Initializes a new instance of the class with the specified name. The constructor name. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Gets the with the specified key. The with the specified key. Loads a from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Loads a from a . A that will be read for the content of the . The used to load the JSON. If this is null, default load settings will be used. A that contains the JSON that was read from the specified . Represents a token that can contain other tokens. Occurs when the items list of the collection has changed, or the collection is reset. Gets the container's children tokens. The container's children tokens. Raises the event. The instance containing the event data. Gets a value indicating whether this token has child tokens. true if this token has child values; otherwise, false. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Returns a collection of the descendant tokens for this token in document order. An of containing the descendant tokens of the . Returns a collection of the tokens that contain this token, and all descendant tokens of this token, in document order. An of containing this token, and all the descendant tokens of the . Adds the specified content as children of this . The content to be added. Adds the specified content as the first children of this . The content to be added. Creates a that can be used to add tokens to the . A that is ready to have content written to it. Replaces the child nodes of this token with the specified content. The content. Removes the child nodes from this token. Merge the specified content into this . The content to be merged. Merge the specified content into this using . The content to be merged. The used to merge the content. Gets the count of child JSON tokens. The count of child JSON tokens. Represents a collection of objects. The type of token. An empty collection of objects. Initializes a new instance of the struct. The enumerable. Returns an enumerator that can be used to iterate through the collection. A that can be used to iterate through the collection. Gets the of with the specified key. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Determines whether the specified is equal to this instance. The to compare with this instance. true if the specified is equal to this instance; otherwise, false. Returns a hash code for this instance. A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. Represents a JSON object. Writes this token to a asynchronously. A into which this method will write. The token to monitor for cancellation requests. A collection of which will be used when writing the token. A that represents the asynchronous write operation. Asynchronously loads a from a . A that will be read for the content of the . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous load. The property returns a that contains the JSON that was read from the specified . Asynchronously loads a from a . A that will be read for the content of the . The used to load the JSON. If this is null, default load settings will be used. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous load. The property returns a that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Occurs when a property value changes. Occurs when a property value is changing. Initializes a new instance of the class. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the specified content. The contents of the object. Initializes a new instance of the class with the specified content. The contents of the object. Gets the node type for this . The type. Gets an of of this object's properties. An of of this object's properties. Gets a with the specified name. The property name. A with the specified name or null. Gets the with the specified name. The exact name will be searched for first and if no matching property is found then the will be used to match a property. The property name. One of the enumeration values that specifies how the strings will be compared. A matched with the specified name or null. Gets a of of this object's property values. A of of this object's property values. Gets the with the specified key. The with the specified key. Gets or sets the with the specified property name. Loads a from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . is not valid JSON. Loads a from a . A that will be read for the content of the . The used to load the JSON. If this is null, default load settings will be used. A that contains the JSON that was read from the specified . is not valid JSON. Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. is not valid JSON. Load a from a string that contains JSON. A that contains JSON. The used to load the JSON. If this is null, default load settings will be used. A populated from the string that contains JSON. is not valid JSON. Creates a from an object. The object that will be used to create . A with the values of the specified object. Creates a from an object. The object that will be used to create . The that will be used to read the object. A with the values of the specified object. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Gets the with the specified property name. Name of the property. The with the specified property name. Gets the with the specified property name. The exact property name will be searched for first and if no matching property is found then the will be used to match a property. Name of the property. One of the enumeration values that specifies how the strings will be compared. The with the specified property name. Tries to get the with the specified property name. The exact property name will be searched for first and if no matching property is found then the will be used to match a property. Name of the property. The value. One of the enumeration values that specifies how the strings will be compared. true if a value was successfully retrieved; otherwise, false. Adds the specified property name. Name of the property. The value. Determines whether the JSON object has the specified property name. Name of the property. true if the JSON object has the specified property name; otherwise, false. Removes the property with the specified name. Name of the property. true if item was successfully removed; otherwise, false. Tries to get the with the specified property name. Name of the property. The value. true if a value was successfully retrieved; otherwise, false. Returns an enumerator that can be used to iterate through the collection. A that can be used to iterate through the collection. Raises the event with the provided arguments. Name of the property. Raises the event with the provided arguments. Name of the property. Represents a JSON property. Writes this token to a asynchronously. A into which this method will write. The token to monitor for cancellation requests. A collection of which will be used when writing the token. A that represents the asynchronous write operation. Asynchronously loads a from a . A that will be read for the content of the . The token to monitor for cancellation requests. The default value is . A representing the asynchronous creation. The property returns a that contains the JSON that was read from the specified . Asynchronously loads a from a . A that will be read for the content of the . The used to load the JSON. If this is null, default load settings will be used. The token to monitor for cancellation requests. The default value is . A representing the asynchronous creation. The property returns a that contains the JSON that was read from the specified . Gets the container's children tokens. The container's children tokens. Gets the property name. The property name. Gets or sets the property value. The property value. Initializes a new instance of the class from another object. A object to copy from. Gets the node type for this . The type. Initializes a new instance of the class. The property name. The property content. Initializes a new instance of the class. The property name. The property content. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Loads a from a . A that will be read for the content of the . A that contains the JSON that was read from the specified . Loads a from a . A that will be read for the content of the . The used to load the JSON. If this is null, default load settings will be used. A that contains the JSON that was read from the specified . Represents a raw JSON string. Asynchronously creates an instance of with the content of the reader's current token. The reader. The token to monitor for cancellation requests. The default value is . A representing the asynchronous creation. The property returns an instance of with the content of the reader's current token. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class. The raw json. Creates an instance of with the content of the reader's current token. The reader. An instance of with the content of the reader's current token. Specifies the settings used when loading JSON. Initializes a new instance of the class. Gets or sets how JSON comments are handled when loading JSON. The JSON comment handling. Gets or sets how JSON line info is handled when loading JSON. The JSON line info handling. Specifies the settings used when merging JSON. Initializes a new instance of the class. Gets or sets the method used when merging JSON arrays. The method used when merging JSON arrays. Gets or sets how null value properties are merged. How null value properties are merged. Gets or sets the comparison used to match property names while merging. The exact property name will be searched for first and if no matching property is found then the will be used to match a property. The comparison used to match property names while merging. Represents an abstract JSON token. Writes this token to a asynchronously. A into which this method will write. The token to monitor for cancellation requests. A collection of which will be used when writing the token. A that represents the asynchronous write operation. Writes this token to a asynchronously. A into which this method will write. A collection of which will be used when writing the token. A that represents the asynchronous write operation. Asynchronously creates a from a . An positioned at the token to read into this . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous creation. The property returns a that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Asynchronously creates a from a . An positioned at the token to read into this . The used to load the JSON. If this is null, default load settings will be used. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous creation. The property returns a that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Asynchronously creates a from a . A positioned at the token to read into this . The token to monitor for cancellation requests. The default value is . A that represents the asynchronous creation. The property returns a that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Asynchronously creates a from a . A positioned at the token to read into this . The used to load the JSON. If this is null, default load settings will be used. The token to monitor for cancellation requests. The default value is . A that represents the asynchronous creation. The property returns a that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Gets a comparer that can compare two tokens for value equality. A that can compare two nodes for value equality. Gets or sets the parent. The parent. Gets the root of this . The root of this . Gets the node type for this . The type. Gets a value indicating whether this token has child tokens. true if this token has child values; otherwise, false. Compares the values of two tokens, including the values of all descendant tokens. The first to compare. The second to compare. true if the tokens are equal; otherwise false. Gets the next sibling token of this node. The that contains the next sibling token. Gets the previous sibling token of this node. The that contains the previous sibling token. Gets the path of the JSON token. Adds the specified content immediately after this token. A content object that contains simple content or a collection of content objects to be added after this token. Adds the specified content immediately before this token. A content object that contains simple content or a collection of content objects to be added before this token. Returns a collection of the ancestor tokens of this token. A collection of the ancestor tokens of this token. Returns a collection of tokens that contain this token, and the ancestors of this token. A collection of tokens that contain this token, and the ancestors of this token. Returns a collection of the sibling tokens after this token, in document order. A collection of the sibling tokens after this tokens, in document order. Returns a collection of the sibling tokens before this token, in document order. A collection of the sibling tokens before this token, in document order. Gets the with the specified key. The with the specified key. Gets the with the specified key converted to the specified type. The type to convert the token to. The token key. The converted token value. Get the first child token of this token. A containing the first child token of the . Get the last child token of this token. A containing the last child token of the . Returns a collection of the child tokens of this token, in document order. An of containing the child tokens of this , in document order. Returns a collection of the child tokens of this token, in document order, filtered by the specified type. The type to filter the child tokens on. A containing the child tokens of this , in document order. Returns a collection of the child values of this token, in document order. The type to convert the values to. A containing the child values of this , in document order. Removes this token from its parent. Replaces this token with the specified token. The value. Writes this token to a . A into which this method will write. A collection of which will be used when writing the token. Returns the indented JSON for this token. The indented JSON for this token. Returns the JSON for this token using the given formatting and converters. Indicates how the output should be formatted. A collection of s which will be used when writing the token. The JSON for this token using the given formatting and converters. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to []. The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an explicit conversion from to of . The value. The result of the conversion. Performs an explicit conversion from to . The value. The result of the conversion. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from [] to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from to . The value to create a from. The initialized with the specified value. Performs an implicit conversion from of to . The value to create a from. The initialized with the specified value. Creates a for this token. A that can be used to read this token and its descendants. Creates a from an object. The object that will be used to create . A with the value of the specified object. Creates a from an object using the specified . The object that will be used to create . The that will be used when reading the object. A with the value of the specified object. Creates an instance of the specified .NET type from the . The object type that the token will be deserialized to. The new object created from the JSON value. Creates an instance of the specified .NET type from the . The object type that the token will be deserialized to. The new object created from the JSON value. Creates an instance of the specified .NET type from the using the specified . The object type that the token will be deserialized to. The that will be used when creating the object. The new object created from the JSON value. Creates an instance of the specified .NET type from the using the specified . The object type that the token will be deserialized to. The that will be used when creating the object. The new object created from the JSON value. Creates a from a . A positioned at the token to read into this . A that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Creates a from a . An positioned at the token to read into this . The used to load the JSON. If this is null, default load settings will be used. A that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Load a from a string that contains JSON. A that contains JSON. A populated from the string that contains JSON. Load a from a string that contains JSON. A that contains JSON. The used to load the JSON. If this is null, default load settings will be used. A populated from the string that contains JSON. Creates a from a . A positioned at the token to read into this . The used to load the JSON. If this is null, default load settings will be used. A that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Creates a from a . A positioned at the token to read into this . A that contains the token and its descendant tokens that were read from the reader. The runtime type of the token is determined by the token type of the first token encountered in the reader. Selects a using a JPath expression. Selects the token that matches the object path. A that contains a JPath expression. A , or null. Selects a using a JPath expression. Selects the token that matches the object path. A that contains a JPath expression. A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. A . Selects a collection of elements using a JPath expression. A that contains a JPath expression. An of that contains the selected elements. Selects a collection of elements using a JPath expression. A that contains a JPath expression. A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. An of that contains the selected elements. Creates a new instance of the . All child tokens are recursively cloned. A new instance of the . Adds an object to the annotation list of this . The annotation to add. Get the first annotation object of the specified type from this . The type of the annotation to retrieve. The first annotation object that matches the specified type, or null if no annotation is of the specified type. Gets the first annotation object of the specified type from this . The of the annotation to retrieve. The first annotation object that matches the specified type, or null if no annotation is of the specified type. Gets a collection of annotations of the specified type for this . The type of the annotations to retrieve. An that contains the annotations for this . Gets a collection of annotations of the specified type for this . The of the annotations to retrieve. An of that contains the annotations that match the specified type for this . Removes the annotations of the specified type from this . The type of annotations to remove. Removes the annotations of the specified type from this . The of annotations to remove. Compares tokens to determine whether they are equal. Determines whether the specified objects are equal. The first object of type to compare. The second object of type to compare. true if the specified objects are equal; otherwise, false. Returns a hash code for the specified object. The for which a hash code is to be returned. A hash code for the specified object. The type of is a reference type and is null. Represents a reader that provides fast, non-cached, forward-only access to serialized JSON data. Gets the at the reader's current position. Initializes a new instance of the class. The token to read from. Reads the next JSON token from the underlying . true if the next token was read successfully; false if there are no more tokens to read. Gets the path of the current JSON token. Specifies the type of token. No token type has been set. A JSON object. A JSON array. A JSON constructor. A JSON object property. A comment. An integer value. A float value. A string value. A boolean value. A null value. An undefined value. A date value. A raw JSON value. A collection of bytes value. A Guid value. A Uri value. A TimeSpan value. Represents a writer that provides a fast, non-cached, forward-only way of generating JSON data. Gets the at the writer's current position. Gets the token being written. The token being written. Initializes a new instance of the class writing to the given . The container being written to. Initializes a new instance of the class. Flushes whatever is in the buffer to the underlying . Closes this writer. If is set to true, the JSON is auto-completed. Setting to true has no additional effect, since the underlying is a type that cannot be closed. Writes the beginning of a JSON object. Writes the beginning of a JSON array. Writes the start of a constructor with the given name. The name of the constructor. Writes the end. The token. Writes the property name of a name/value pair on a JSON object. The name of the property. Writes a value. An error will be raised if the value cannot be written as a single JSON token. The value to write. Writes a null value. Writes an undefined value. Writes raw JSON. The raw JSON to write. Writes a comment /*...*/ containing the specified text. Text to place inside the comment. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a [] value. The [] value to write. Writes a value. The value to write. Writes a value. The value to write. Writes a value. The value to write. Represents a value in JSON (string, integer, date, etc). Writes this token to a asynchronously. A into which this method will write. The token to monitor for cancellation requests. A collection of which will be used when writing the token. A that represents the asynchronous write operation. Initializes a new instance of the class from another object. A object to copy from. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Initializes a new instance of the class with the given value. The value. Gets a value indicating whether this token has child tokens. true if this token has child values; otherwise, false. Creates a comment with the given value. The value. A comment with the given value. Creates a string with the given value. The value. A string with the given value. Creates a null value. A null value. Creates a undefined value. A undefined value. Gets the node type for this . The type. Gets or sets the underlying token value. The underlying token value. Writes this token to a . A into which this method will write. A collection of s which will be used when writing the token. Indicates whether the current object is equal to another object of the same type. true if the current object is equal to the parameter; otherwise, false. An object to compare with this object. Determines whether the specified is equal to the current . The to compare with the current . true if the specified is equal to the current ; otherwise, false. Serves as a hash function for a particular type. A hash code for the current . Returns a that represents this instance. A that represents this instance. Returns a that represents this instance. The format. A that represents this instance. Returns a that represents this instance. The format provider. A that represents this instance. Returns a that represents this instance. The format. The format provider. A that represents this instance. Compares the current instance with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other object. An object to compare with this instance. A 32-bit signed integer that indicates the relative order of the objects being compared. The return value has these meanings: Value Meaning Less than zero This instance is less than . Zero This instance is equal to . Greater than zero This instance is greater than . is not of the same type as this instance. Specifies how line information is handled when loading JSON. Ignore line information. Load line information. Specifies how JSON arrays are merged together. Concatenate arrays. Union arrays, skipping items that already exist. Replace all array items. Merge array items together, matched by index. Specifies how null value properties are merged. The content's null value properties will be ignored during merging. The content's null value properties will be merged. Specifies the member serialization options for the . All public members are serialized by default. Members can be excluded using or . This is the default member serialization mode. Only members marked with or are serialized. This member serialization mode can also be set by marking the class with . All public and private fields are serialized. Members can be excluded using or . This member serialization mode can also be set by marking the class with and setting IgnoreSerializableAttribute on to false. Specifies metadata property handling options for the . Read metadata properties located at the start of a JSON object. Read metadata properties located anywhere in a JSON object. Note that this setting will impact performance. Do not try to read metadata properties. Specifies missing member handling options for the . Ignore a missing member and do not attempt to deserialize it. Throw a when a missing member is encountered during deserialization. Specifies null value handling options for the . Include null values when serializing and deserializing objects. Ignore null values when serializing and deserializing objects. Specifies how object creation is handled by the . Reuse existing objects, create new objects when needed. Only reuse existing objects. Always create new objects. Specifies reference handling options for the . Note that references cannot be preserved when a value is set via a non-default constructor such as types that implement . Do not preserve references when serializing types. Preserve references when serializing into a JSON object structure. Preserve references when serializing into a JSON array structure. Preserve references when serializing. Specifies reference loop handling options for the . Throw a when a loop is encountered. Ignore loop references and do not serialize. Serialize loop references. Indicating whether a property is required. The property is not required. The default state. The property must be defined in JSON but can be a null value. The property must be defined in JSON and cannot be a null value. The property is not required but it cannot be a null value. Contains the JSON schema extension methods. JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. Determines whether the is valid. JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. The source to test. The schema to test with. true if the specified is valid; otherwise, false. Determines whether the is valid. JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. The source to test. The schema to test with. When this method returns, contains any error messages generated while validating. true if the specified is valid; otherwise, false. Validates the specified . JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. The source to test. The schema to test with. Validates the specified . JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. The source to test. The schema to test with. The validation event handler. An in-memory representation of a JSON Schema. JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. Gets or sets the id. Gets or sets the title. Gets or sets whether the object is required. Gets or sets whether the object is read-only. Gets or sets whether the object is visible to users. Gets or sets whether the object is transient. Gets or sets the description of the object. Gets or sets the types of values allowed by the object. The type. Gets or sets the pattern. The pattern. Gets or sets the minimum length. The minimum length. Gets or sets the maximum length. The maximum length. Gets or sets a number that the value should be divisible by. A number that the value should be divisible by. Gets or sets the minimum. The minimum. Gets or sets the maximum. The maximum. Gets or sets a flag indicating whether the value can not equal the number defined by the minimum attribute (). A flag indicating whether the value can not equal the number defined by the minimum attribute (). Gets or sets a flag indicating whether the value can not equal the number defined by the maximum attribute (). A flag indicating whether the value can not equal the number defined by the maximum attribute (). Gets or sets the minimum number of items. The minimum number of items. Gets or sets the maximum number of items. The maximum number of items. Gets or sets the of items. The of items. Gets or sets a value indicating whether items in an array are validated using the instance at their array position from . true if items are validated using their array position; otherwise, false. Gets or sets the of additional items. The of additional items. Gets or sets a value indicating whether additional items are allowed. true if additional items are allowed; otherwise, false. Gets or sets whether the array items must be unique. Gets or sets the of properties. The of properties. Gets or sets the of additional properties. The of additional properties. Gets or sets the pattern properties. The pattern properties. Gets or sets a value indicating whether additional properties are allowed. true if additional properties are allowed; otherwise, false. Gets or sets the required property if this property is present. The required property if this property is present. Gets or sets the a collection of valid enum values allowed. A collection of valid enum values allowed. Gets or sets disallowed types. The disallowed types. Gets or sets the default value. The default value. Gets or sets the collection of that this schema extends. The collection of that this schema extends. Gets or sets the format. The format. Initializes a new instance of the class. Reads a from the specified . The containing the JSON Schema to read. The object representing the JSON Schema. Reads a from the specified . The containing the JSON Schema to read. The to use when resolving schema references. The object representing the JSON Schema. Load a from a string that contains JSON Schema. A that contains JSON Schema. A populated from the string that contains JSON Schema. Load a from a string that contains JSON Schema using the specified . A that contains JSON Schema. The resolver. A populated from the string that contains JSON Schema. Writes this schema to a . A into which this method will write. Writes this schema to a using the specified . A into which this method will write. The resolver used. Returns a that represents the current . A that represents the current . Returns detailed information about the schema exception. JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. Gets the line number indicating where the error occurred. The line number indicating where the error occurred. Gets the line position indicating where the error occurred. The line position indicating where the error occurred. Gets the path to the JSON where the error occurred. The path to the JSON where the error occurred. 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 exception that is the cause of the current exception, or null if no inner exception is specified. Generates a from a specified . JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. Gets or sets how undefined schemas are handled by the serializer. Gets or sets the contract resolver. The contract resolver. Generate a from the specified type. The type to generate a from. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. A generated from the specified type. Generate a from the specified type. The type to generate a from. Specify whether the generated root will be nullable. A generated from the specified type. Generate a from the specified type. The type to generate a from. The used to resolve schema references. Specify whether the generated root will be nullable. A generated from the specified type. Resolves from an id. JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. Gets or sets the loaded schemas. The loaded schemas. Initializes a new instance of the class. Gets a for the specified reference. The id. A for the specified reference. The value types allowed by the . JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. No type specified. String type. Float type. Integer type. Boolean type. Object type. Array type. Null type. Any type. Specifies undefined schema Id handling options for the . JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. Do not infer a schema Id. Use the .NET type name as the schema Id. Use the assembly qualified .NET type name as the schema Id. Returns detailed information related to the . JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. Gets the associated with the validation error. The JsonSchemaException associated with the validation error. Gets the path of the JSON location where the validation error occurred. The path of the JSON location where the validation error occurred. Gets the text description corresponding to the validation error. The text description. Represents the callback method that will handle JSON schema validation events and the . JSON Schema validation has been moved to its own package. See https://www.newtonsoft.com/jsonschema for more details. Allows users to control class loading and mandate what class to load. When overridden in a derived class, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object The type of the object the formatter creates a new instance of. When overridden in a derived class, controls the binding of a serialized object to a type. The type of the object the formatter creates a new instance of. Specifies the name of the serialized object. Specifies the name of the serialized object. A camel case naming strategy. Initializes a new instance of the class. A flag indicating whether dictionary keys should be processed. A flag indicating whether explicitly specified property names should be processed, e.g. a property name customized with a . Initializes a new instance of the class. A flag indicating whether dictionary keys should be processed. A flag indicating whether explicitly specified property names should be processed, e.g. a property name customized with a . A flag indicating whether extension data names should be processed. Initializes a new instance of the class. Resolves the specified property name. The property name to resolve. The resolved property name. Resolves member mappings for a type, camel casing property names. Initializes a new instance of the class. Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Used by to resolve a for a given . Gets a value indicating whether members are being get and set using dynamic code generation. This value is determined by the runtime permissions available. true if using dynamic code generation; otherwise, false. Gets or sets a value indicating whether compiler generated members should be serialized. true if serialized compiler generated members; otherwise, false. Gets or sets a value indicating whether to ignore IsSpecified members when serializing and deserializing types. true if the IsSpecified members will be ignored when serializing and deserializing types; otherwise, false. Gets or sets a value indicating whether to ignore ShouldSerialize members when serializing and deserializing types. true if the ShouldSerialize members will be ignored when serializing and deserializing types; otherwise, false. Gets or sets the naming strategy used to resolve how property names and dictionary keys are serialized. The naming strategy used to resolve how property names and dictionary keys are serialized. Initializes a new instance of the class. Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Gets the serializable members for the type. The type to get serializable members for. The serializable members for the type. Creates a for the given type. Type of the object. A for the given type. Creates the constructor parameters. The constructor to create properties for. The type's member properties. Properties for the given . Creates a for the given . The matching member property. The constructor parameter. A created for the given . Resolves the default for the contract. Type of the object. The contract's default . Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Creates a for the given type. Type of the object. A for the given type. Determines which contract type is created for the given type. Type of the object. A for the given type. Creates properties for the given . The type to create properties for. /// The member serialization mode for the type. Properties for the given . Creates the used by the serializer to get and set values from a member. The member. The used by the serializer to get and set values from a member. Creates a for the given . The member's parent . The member to create a for. A created for the given . Resolves the name of the property. Name of the property. Resolved name of the property. Resolves the name of the extension data. By default no changes are made to extension data names. Name of the extension data. Resolved name of the extension data. Resolves the key of the dictionary. By default is used to resolve dictionary keys. Key of the dictionary. Resolved key of the dictionary. Gets the resolved name of the property. Name of the property. Name of the property. The default naming strategy. Property names and dictionary keys are unchanged. Resolves the specified property name. The property name to resolve. The resolved property name. The default serialization binder used when resolving and loading classes from type names. Initializes a new instance of the class. When overridden in a derived class, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object. The type of the object the formatter creates a new instance of. When overridden in a derived class, controls the binding of a serialized object to a type. The type of the object the formatter creates a new instance of. Specifies the name of the serialized object. Specifies the name of the serialized object. Provides information surrounding an error. Gets the error. The error. Gets the original object that caused the error. The original object that caused the error. Gets the member that caused the error. The member that caused the error. Gets the path of the JSON location where the error occurred. The path of the JSON location where the error occurred. Gets or sets a value indicating whether this is handled. true if handled; otherwise, false. Provides data for the Error event. Gets the current object the error event is being raised against. The current object the error event is being raised against. Gets the error context. The error context. Initializes a new instance of the class. The current object. The error context. Get and set values for a using dynamic methods. Initializes a new instance of the class. The member info. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Provides methods to get attributes. Returns a collection of all of the attributes, or an empty collection if there are no attributes. When true, look up the hierarchy chain for the inherited custom attribute. A collection of s, or an empty collection. Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. The type of the attributes. When true, look up the hierarchy chain for the inherited custom attribute. A collection of s, or an empty collection. Used by to resolve a for a given . Resolves the contract for a given type. The type to resolve a contract for. The contract for a given type. Used to resolve references when serializing and deserializing JSON by the . Resolves a reference to its object. The serialization context. The reference to resolve. The object that was resolved from the reference. Gets the reference for the specified object. The serialization context. The object to get a reference for. The reference to the object. Determines whether the specified object is referenced. The serialization context. The object to test for a reference. true if the specified object is referenced; otherwise, false. Adds a reference to the specified object. The serialization context. The reference. The object to reference. Allows users to control class loading and mandate what class to load. When implemented, controls the binding of a serialized object to a type. Specifies the name of the serialized object. Specifies the name of the serialized object The type of the object the formatter creates a new instance of. When implemented, controls the binding of a serialized object to a type. The type of the object the formatter creates a new instance of. Specifies the name of the serialized object. Specifies the name of the serialized object. Represents a trace writer. Gets the that will be used to filter the trace messages passed to the writer. For example a filter level of will exclude messages and include , and messages. The that will be used to filter the trace messages passed to the writer. Writes the specified trace level, message and optional exception. The at which to write this trace. The trace message. The trace exception. This parameter is optional. Provides methods to get and set values. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. Contract details for a used by the . Gets the of the collection items. The of the collection items. Gets a value indicating whether the collection type is a multidimensional array. true if the collection type is a multidimensional array; otherwise, false. Gets or sets the function used to create the object. When set this function will override . The function used to create the object. Gets a value indicating whether the creator has a parameter with the collection values. true if the creator has a parameter with the collection values; otherwise, false. Initializes a new instance of the class. The underlying type for the contract. Contract details for a used by the . Gets or sets the default collection items . The converter. Gets or sets a value indicating whether the collection items preserve object references. true if collection items preserve object references; otherwise, false. Gets or sets the collection item reference loop handling. The reference loop handling. Gets or sets the collection item type name handling. The type name handling. Initializes a new instance of the class. The underlying type for the contract. Handles serialization callback events. The object that raised the callback event. The streaming context. Handles serialization error callback events. The object that raised the callback event. The streaming context. The error context. Sets extension data for an object during deserialization. The object to set extension data on. The extension data key. The extension data value. Gets extension data for an object during serialization. The object to set extension data on. Contract details for a used by the . Gets the underlying type for the contract. The underlying type for the contract. Gets or sets the type created during deserialization. The type created during deserialization. Gets or sets whether this type contract is serialized as a reference. Whether this type contract is serialized as a reference. Gets or sets the default for this contract. The converter. Gets or sets all methods called immediately after deserialization of the object. The methods called immediately after deserialization of the object. Gets or sets all methods called during deserialization of the object. The methods called during deserialization of the object. Gets or sets all methods called after serialization of the object graph. The methods called after serialization of the object graph. Gets or sets all methods called before serialization of the object. The methods called before serialization of the object. Gets or sets all method called when an error is thrown during the serialization of the object. The methods called when an error is thrown during the serialization of the object. Gets or sets the default creator method used to create the object. The default creator method used to create the object. Gets or sets a value indicating whether the default creator is non-public. true if the default object creator is non-public; otherwise, false. Contract details for a used by the . Gets or sets the dictionary key resolver. The dictionary key resolver. Gets the of the dictionary keys. The of the dictionary keys. Gets the of the dictionary values. The of the dictionary values. Gets or sets the function used to create the object. When set this function will override . The function used to create the object. Gets a value indicating whether the creator has a parameter with the dictionary values. true if the creator has a parameter with the dictionary values; otherwise, false. Initializes a new instance of the class. The underlying type for the contract. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Contract details for a used by the . Gets or sets the object member serialization. The member object serialization. Gets or sets a value that indicates whether the object's properties are required. A value indicating whether the object's properties are required. Gets or sets how the object's properties with null values are handled during serialization and deserialization. How the object's properties with null values are handled during serialization and deserialization. Gets the object's properties. The object's properties. Gets a collection of instances that define the parameters used with . Gets or sets the function used to create the object. When set this function will override . This function is called with a collection of arguments which are defined by the collection. The function used to create the object. Gets or sets the extension data setter. Gets or sets the extension data getter. Gets or sets the extension data value type. Gets or sets the extension data name resolver. The extension data name resolver. Initializes a new instance of the class. The underlying type for the contract. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Maps a JSON property to a .NET member or constructor parameter. Gets or sets the name of the property. The name of the property. Gets or sets the type that declared this property. The type that declared this property. Gets or sets the order of serialization of a member. The numeric order of serialization. Gets or sets the name of the underlying member or parameter. The name of the underlying member or parameter. Gets the that will get and set the during serialization. The that will get and set the during serialization. Gets or sets the for this property. The for this property. Gets or sets the type of the property. The type of the property. Gets or sets the for the property. If set this converter takes precedence over the contract converter for the property type. The converter. Gets or sets the member converter. The member converter. Gets or sets a value indicating whether this is ignored. true if ignored; otherwise, false. Gets or sets a value indicating whether this is readable. true if readable; otherwise, false. Gets or sets a value indicating whether this is writable. true if writable; otherwise, false. Gets or sets a value indicating whether this has a member attribute. true if has a member attribute; otherwise, false. Gets the default value. The default value. Gets or sets a value indicating whether this is required. A value indicating whether this is required. Gets or sets a value indicating whether this property preserves object references. true if this instance is reference; otherwise, false. Gets or sets the property null value handling. The null value handling. Gets or sets the property default value handling. The default value handling. Gets or sets the property reference loop handling. The reference loop handling. Gets or sets the property object creation handling. The object creation handling. Gets or sets or sets the type name handling. The type name handling. Gets or sets a predicate used to determine whether the property should be serialized. A predicate used to determine whether the property should be serialized. Gets or sets a predicate used to determine whether the property should be deserialized. A predicate used to determine whether the property should be deserialized. Gets or sets a predicate used to determine whether the property should be serialized. A predicate used to determine whether the property should be serialized. Gets or sets an action used to set whether the property has been deserialized. An action used to set whether the property has been deserialized. Returns a that represents this instance. A that represents this instance. Gets or sets the converter used when serializing the property's collection items. The collection's items converter. Gets or sets whether this property's collection items are serialized as a reference. Whether this property's collection items are serialized as a reference. Gets or sets the type name handling used when serializing the property's collection items. The collection's items type name handling. Gets or sets the reference loop handling used when serializing the property's collection items. The collection's items reference loop handling. A collection of objects. Initializes a new instance of the class. The type. When implemented in a derived class, extracts the key from the specified element. The element from which to extract the key. The key for the specified element. Adds a object. The property to add to the collection. Gets the closest matching object. First attempts to get an exact case match of and then a case insensitive match. Name of the property. A matching property if found. Gets a property by property name. The name of the property to get. Type property name string comparison. A matching property if found. Contract details for a used by the . Initializes a new instance of the class. The underlying type for the contract. Lookup and create an instance of the type described by the argument. The type to create. Optional arguments to pass to an initializing constructor of the JsonConverter. If null, the default constructor is used. Represents a trace writer that writes to memory. When the trace message limit is reached then old trace messages will be removed as new messages are added. Gets the that will be used to filter the trace messages passed to the writer. For example a filter level of will exclude messages and include , and messages. The that will be used to filter the trace messages passed to the writer. Initializes a new instance of the class. Writes the specified trace level, message and optional exception. The at which to write this trace. The trace message. The trace exception. This parameter is optional. Returns an enumeration of the most recent trace messages. An enumeration of the most recent trace messages. Returns a of the most recent trace messages. A of the most recent trace messages. A base class for resolving how property names and dictionary keys are serialized. A flag indicating whether dictionary keys should be processed. Defaults to false. A flag indicating whether extension data names should be processed. Defaults to false. A flag indicating whether explicitly specified property names, e.g. a property name customized with a , should be processed. Defaults to false. Gets the serialized name for a given property name. The initial property name. A flag indicating whether the property has had a name explicitly specified. The serialized property name. Gets the serialized name for a given extension data name. The initial extension data name. The serialized extension data name. Gets the serialized key for a given dictionary key. The initial dictionary key. The serialized dictionary key. Resolves the specified property name. The property name to resolve. The resolved property name. Represents a method that constructs an object. The object type to create. When applied to a method, specifies that the method is called when an error occurs serializing an object. Provides methods to get attributes from a , , or . Initializes a new instance of the class. The instance to get attributes for. This parameter should be a , , or . Returns a collection of all of the attributes, or an empty collection if there are no attributes. When true, look up the hierarchy chain for the inherited custom attribute. A collection of s, or an empty collection. Returns a collection of attributes, identified by type, or an empty collection if there are no attributes. The type of the attributes. When true, look up the hierarchy chain for the inherited custom attribute. A collection of s, or an empty collection. Get and set values for a using reflection. Initializes a new instance of the class. The member info. Sets the value. The target to set the value on. The value to set on the target. Gets the value. The target to get the value from. The value. A snake case naming strategy. Initializes a new instance of the class. A flag indicating whether dictionary keys should be processed. A flag indicating whether explicitly specified property names should be processed, e.g. a property name customized with a . Initializes a new instance of the class. A flag indicating whether dictionary keys should be processed. A flag indicating whether explicitly specified property names should be processed, e.g. a property name customized with a . A flag indicating whether extension data names should be processed. Initializes a new instance of the class. Resolves the specified property name. The property name to resolve. The resolved property name. Specifies how strings are escaped when writing JSON text. Only control characters (e.g. newline) are escaped. All non-ASCII and control characters (e.g. newline) are escaped. HTML (<, >, &, ', ") and control characters (e.g. newline) are escaped. Specifies what messages to output for the class. Output no tracing and debugging messages. Output error-handling messages. Output warnings and error-handling messages. Output informational messages, warnings, and error-handling messages. Output all debugging and tracing messages. Indicates the method that will be used during deserialization for locating and loading assemblies. In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the LoadWithPartialName method of the class is used to load the assembly. In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The Load method of the class is used to load the assembly. Specifies type name handling options for the . should be used with caution when your application deserializes JSON from an external source. Incoming types should be validated with a custom when deserializing with a value other than . Do not include the .NET type name when serializing types. Include the .NET type name when serializing into a JSON object structure. Include the .NET type name when serializing into a JSON array structure. Always include the .NET type name when serializing. Include the .NET type name when the type of the object being serialized is not the same as its declared type. Note that this doesn't include the root serialized object by default. To include the root object's type name in JSON you must specify a root type object with or . Determines whether the collection is null or empty. The collection. true if the collection is null or empty; otherwise, false. Adds the elements of the specified collection to the specified generic . The list to add to. The collection of elements to add. Converts the value to the specified type. If the value is unable to be converted, the value is checked whether it assignable to the specified type. The value to convert. The culture to use when converting. The type to convert or cast the value to. The converted type. If conversion was unsuccessful, the initial value is returned if assignable to the target type. Helper class for serializing immutable collections. Note that this is used by all builds, even those that don't support immutable collections, in case the DLL is GACed https://github.com/JamesNK/Microsoft.Identity.Json/issues/652 List of primitive types which can be widened. Widening masks for primitive types above. Index of the value in this array defines a type we're widening, while the bits in mask define types it can be widened to (including itself). For example, value at index 0 defines a bool type, and it only has bit 0 set, i.e. bool values can be assigned only to bool. Checks if value of primitive type can be assigned to parameter of primitive type . Source primitive type. Target primitive type. true if source type can be widened to target type, false otherwise. Checks if a set of values with given can be used to invoke a method with specified . Method parameters. Argument types. Try to pack extra arguments into the last parameter when it is marked up with . true if method can be called with given arguments, false otherwise. Compares two sets of parameters to determine which one suits better for given argument types. Returns a best method overload for given argument . List of method candidates. Argument types. Best method overload, or null if none matched. Gets the type of the typed collection's items. The type. The type of the typed collection's items. Gets the member's underlying type. The member. The underlying type of the member. Determines whether the member is an indexed property. The member. true if the member is an indexed property; otherwise, false. Determines whether the property is an indexed property. The property. true if the property is an indexed property; otherwise, false. Gets the member's value on the object. The member. The target object. The member's value on the object. Sets the member's value on the target object. The member. The target. The value. Determines whether the specified MemberInfo can be read. The MemberInfo to determine whether can be read. /// if set to true then allow the member to be gotten non-publicly. true if the specified MemberInfo can be read; otherwise, false. Determines whether the specified MemberInfo can be set. The MemberInfo to determine whether can be set. if set to true then allow the member to be set non-publicly. if set to true then allow the member to be set if read-only. true if the specified MemberInfo can be set; otherwise, false. Builds a string. Unlike this class lets you reuse its internal buffer. Determines whether the string is all white space. Empty string will return false. The string to test whether it is all white space. true if the string is all white space; otherwise, false. Specifies the state of the . An exception has been thrown, which has left the in an invalid state. You may call the method to put the in the Closed state. Any other method calls result in an being thrown. The method has been called. An object is being written. An array is being written. A constructor is being written. A property is being written. A write method has not been called. Indicates the method that will be used during deserialization for locating and loading assemblies. In simple mode, the assembly used during deserialization need not match exactly the assembly used during serialization. Specifically, the version numbers need not match as the method is used to load the assembly. In full mode, the assembly used during deserialization must match exactly the assembly used during serialization. The is used to load the assembly.