/// <summary> /// Interactively authenticates a user via the default browser. /// </summary> /// <param name="cancellationToken">A <see cref="CancellationToken"/> controlling the request lifetime.</param> /// <returns>The result of the authentication request, containing the acquired <see cref="AccessToken"/>, and the <see cref="AuthenticationRecord"/> which can be used to silently authenticate the account.</returns> internal virtual AuthenticationRecord Authenticate(CancellationToken cancellationToken = default) { // get the default scope for the authority, throw if no default scope exists string defaultScope = AzureAuthorityHosts.GetDefaultScope(_pipeline.AuthorityHost) ?? throw new CredentialUnavailableException(NoDefaultScopeMessage); return(Authenticate(new TokenRequestContext(new string[] { defaultScope }), cancellationToken)); }
/// <summary> /// Authenticates the user using the specified username and password. /// </summary> /// <param name="cancellationToken">A <see cref="CancellationToken"/> controlling the request lifetime.</param> /// <returns>The <see cref="AuthenticationRecord"/> of the authenticated account.</returns> public virtual async Task <AuthenticationRecord> AuthenticateAsync(CancellationToken cancellationToken = default) { // get the default scope for the authority, throw if no default scope exists string defaultScope = AzureAuthorityHosts.GetDefaultScope(_pipeline.AuthorityHost) ?? throw new CredentialUnavailableException(NoDefaultScopeMessage); return(await AuthenticateAsync(new TokenRequestContext(new string[] { defaultScope }), cancellationToken).ConfigureAwait(false)); }
internal DeviceCodeCredential(Func <DeviceCodeInfo, CancellationToken, Task> deviceCodeCallback, string tenantId, string clientId, TokenCredentialOptions options, CredentialPipeline pipeline, MsalPublicClient client) { _clientId = clientId ?? throw new ArgumentNullException(nameof(clientId)); _deviceCodeCallback = deviceCodeCallback ?? throw new ArgumentNullException(nameof(deviceCodeCallback)); _pipeline = pipeline ?? CredentialPipeline.GetInstance(options); _client = client ?? new MsalPublicClient(_pipeline, tenantId, clientId, AzureAuthorityHosts.GetDeviceCodeRedirectUri(_pipeline.AuthorityHost).ToString(), options as ITokenCacheOptions); }
internal DeviceCodeCredential(Func <DeviceCodeInfo, CancellationToken, Task> deviceCodeCallback, string tenantId, string clientId, TokenCredentialOptions options, CredentialPipeline pipeline, MsalPublicClient client) { ClientId = clientId ?? throw new ArgumentNullException(nameof(clientId)); DeviceCodeCallback = deviceCodeCallback ?? throw new ArgumentNullException(nameof(deviceCodeCallback)); DisableAutomaticAuthentication = (options as DeviceCodeCredentialOptions)?.DisableAutomaticAuthentication ?? false; Record = (options as DeviceCodeCredentialOptions)?.AuthenticationRecord; Pipeline = pipeline ?? CredentialPipeline.GetInstance(options); Client = client ?? new MsalPublicClient(Pipeline, tenantId, ClientId, AzureAuthorityHosts.GetDeviceCodeRedirectUri(Pipeline.AuthorityHost).ToString(), options as ITokenCacheOptions); }
internal DeviceCodeCredential(Func <DeviceCodeInfo, CancellationToken, Task> deviceCodeCallback, string tenantId, string clientId, TokenCredentialOptions options, CredentialPipeline pipeline, MsalPublicClient client) { Argument.AssertNotNull(clientId, nameof(clientId)); Argument.AssertNotNull(deviceCodeCallback, nameof(deviceCodeCallback)); _tenantId = tenantId; ClientId = clientId; DeviceCodeCallback = deviceCodeCallback; DisableAutomaticAuthentication = (options as DeviceCodeCredentialOptions)?.DisableAutomaticAuthentication ?? false; Record = (options as DeviceCodeCredentialOptions)?.AuthenticationRecord; _allowMultiTenantAuthentication = options?.AllowMultiTenantAuthentication ?? false; Pipeline = pipeline ?? CredentialPipeline.GetInstance(options); Client = client ?? new MsalPublicClient(Pipeline, tenantId, ClientId, AzureAuthorityHosts.GetDeviceCodeRedirectUri(Pipeline.AuthorityHost).AbsoluteUri, options as ITokenCacheOptions); }