// private AuthenticationContext authContext; // private Task<ClientCredential> credential; public AzureB2CUserService( IOptions <AzureB2CUserServiceConfiguration> options, IHttpClientFactory httpClientFactory, IAzureB2CUserServiceAutenticationService azureB2CUserServiceAutenticationService, ILogger <AzureB2CUserService> logger, IHostingEnvironment hostingEnvironment) { _configuration = options.Value ?? throw new ArgumentNullException(nameof(options)); _httpClientFactory = httpClientFactory ?? throw new ArgumentNullException(nameof(httpClientFactory)); _azureB2CUserServiceAutenticationService = azureB2CUserServiceAutenticationService ?? throw new ArgumentNullException(nameof(azureB2CUserServiceAutenticationService)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _hostingEnvironment = hostingEnvironment ?? throw new ArgumentNullException(nameof(hostingEnvironment)); }
public AzureB2CUserServiceAutenticationService(IOptions <AzureB2CUserServiceConfiguration> options) { _configuration = options.Value ?? throw new ArgumentNullException(nameof(options)); _authenticationContext = new AuthenticationContext("https://login.microsoftonline.com/" + _configuration.TenantId); _token = new AsyncExpiringLazy <string>(async(old) => { AuthenticationResult result = await _authenticationContext.AcquireTokenAsync(aadGraphResourceId, new ClientCredential(_configuration.ApplicationId, _configuration.ClientSecret)); return(new ExpirationMetadata <string> { ValidUntil = result.ExpiresOn.AddMinutes(5), Result = result.AccessToken }); }); }