54 lines
2.9 KiB
C#
54 lines
2.9 KiB
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Logging;
|
|
using Microsoft.Extensions.Options;
|
|
|
|
namespace Microsoft.AspNetCore.Identity
|
|
{
|
|
/// <summary>
|
|
/// Provides the APIs for managing user in a persistence store.
|
|
/// </summary>
|
|
/// <typeparam name="TUser">The type encapsulating a user.</typeparam>
|
|
public class AspNetUserManager<TUser> : UserManager<TUser>, IDisposable where TUser : class
|
|
{
|
|
private readonly CancellationToken _cancel;
|
|
|
|
/// <summary>
|
|
/// Constructs a new instance of <see cref="AspNetUserManager{TUser}"/>.
|
|
/// </summary>
|
|
/// <param name="store">The persistence store the manager will operate over.</param>
|
|
/// <param name="optionsAccessor">The accessor used to access the <see cref="IdentityOptions"/>.</param>
|
|
/// <param name="passwordHasher">The password hashing implementation to use when saving passwords.</param>
|
|
/// <param name="userValidators">A collection of <see cref="IUserValidator{TUser}"/> to validate users against.</param>
|
|
/// <param name="passwordValidators">A collection of <see cref="IPasswordValidator{TUser}"/> to validate passwords against.</param>
|
|
/// <param name="keyNormalizer">The <see cref="ILookupNormalizer"/> to use when generating index keys for users.</param>
|
|
/// <param name="errors">The <see cref="IdentityErrorDescriber"/> used to provider error messages.</param>
|
|
/// <param name="services">The <see cref="IServiceProvider"/> used to resolve services.</param>
|
|
/// <param name="logger">The logger used to log messages, warnings and errors.</param>
|
|
public AspNetUserManager(IUserStore<TUser> store,
|
|
IOptions<IdentityOptions> optionsAccessor,
|
|
IPasswordHasher<TUser> passwordHasher,
|
|
IEnumerable<IUserValidator<TUser>> userValidators,
|
|
IEnumerable<IPasswordValidator<TUser>> passwordValidators,
|
|
ILookupNormalizer keyNormalizer,
|
|
IdentityErrorDescriber errors,
|
|
IServiceProvider services,
|
|
ILogger<UserManager<TUser>> logger)
|
|
: base(store, optionsAccessor, passwordHasher, userValidators, passwordValidators, keyNormalizer, errors, services, logger)
|
|
{
|
|
_cancel = services?.GetService<IHttpContextAccessor>()?.HttpContext?.RequestAborted ?? CancellationToken.None;
|
|
}
|
|
|
|
/// <summary>
|
|
/// The cancellation token assocated with the current HttpContext.RequestAborted or CancellationToken.None if unavailable.
|
|
/// </summary>
|
|
protected override CancellationToken CancellationToken => _cancel;
|
|
}
|
|
}
|