| File: IUserStore.cs | Web Access |
| Project: src\aspnetcore\src\Identity\Extensions.Core\src\Microsoft.Extensions.Identity.Core.csproj (Microsoft.Extensions.Identity.Core) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System; using System.Threading; using System.Threading.Tasks; namespace Microsoft.AspNetCore.Identity; /// <summary> /// Provides an abstraction for a store which manages user accounts. /// </summary> /// <typeparam name="TUser">The type encapsulating a user.</typeparam> public interface IUserStore<TUser> : IDisposable where TUser : class { /// <summary> /// Gets the user identifier for the specified <paramref name="user"/>. /// </summary> /// <param name="user">The user whose identifier should be retrieved.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns>The <see cref="Task"/> that represents the asynchronous operation, containing the identifier for the specified <paramref name="user"/>.</returns> Task<string> GetUserIdAsync(TUser user, CancellationToken cancellationToken); /// <summary> /// Gets the user name for the specified <paramref name="user"/>. /// </summary> /// <param name="user">The user whose name should be retrieved.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns>The <see cref="Task"/> that represents the asynchronous operation, containing the name for the specified <paramref name="user"/>.</returns> Task<string?> GetUserNameAsync(TUser user, CancellationToken cancellationToken); /// <summary> /// Sets the given <paramref name="userName" /> for the specified <paramref name="user"/>. /// </summary> /// <param name="user">The user whose name should be set.</param> /// <param name="userName">The user name to set.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns>The <see cref="Task"/> that represents the asynchronous operation.</returns> Task SetUserNameAsync(TUser user, string? userName, CancellationToken cancellationToken); /// <summary> /// Gets the normalized user name for the specified <paramref name="user"/>. /// </summary> /// <param name="user">The user whose normalized name should be retrieved.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns>The <see cref="Task"/> that represents the asynchronous operation, containing the normalized user name for the specified <paramref name="user"/>.</returns> Task<string?> GetNormalizedUserNameAsync(TUser user, CancellationToken cancellationToken); /// <summary> /// Sets the given normalized name for the specified <paramref name="user"/>. /// </summary> /// <param name="user">The user whose name should be set.</param> /// <param name="normalizedName">The normalized name to set.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns>The <see cref="Task"/> that represents the asynchronous operation.</returns> Task SetNormalizedUserNameAsync(TUser user, string? normalizedName, CancellationToken cancellationToken); /// <summary> /// Creates the specified <paramref name="user"/> in the user store. /// </summary> /// <param name="user">The user to create.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns>The <see cref="Task"/> that represents the asynchronous operation, containing the <see cref="IdentityResult"/> of the creation operation.</returns> Task<IdentityResult> CreateAsync(TUser user, CancellationToken cancellationToken); /// <summary> /// Updates the specified <paramref name="user"/> in the user store. /// </summary> /// <param name="user">The user to update.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns>The <see cref="Task"/> that represents the asynchronous operation, containing the <see cref="IdentityResult"/> of the update operation.</returns> Task<IdentityResult> UpdateAsync(TUser user, CancellationToken cancellationToken); /// <summary> /// Deletes the specified <paramref name="user"/> from the user store. /// </summary> /// <param name="user">The user to delete.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns>The <see cref="Task"/> that represents the asynchronous operation, containing the <see cref="IdentityResult"/> of the delete operation.</returns> Task<IdentityResult> DeleteAsync(TUser user, CancellationToken cancellationToken); /// <summary> /// Finds and returns a user, if any, who has the specified <paramref name="userId"/>. /// </summary> /// <param name="userId">The user ID to search for.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns> /// The <see cref="Task"/> that represents the asynchronous operation, containing the user matching the specified <paramref name="userId"/> if it exists. /// </returns> Task<TUser?> FindByIdAsync(string userId, CancellationToken cancellationToken); /// <summary> /// Finds and returns a user, if any, who has the specified normalized user name. /// </summary> /// <param name="normalizedUserName">The normalized user name to search for.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns> /// The <see cref="Task"/> that represents the asynchronous operation, containing the user matching the specified <paramref name="normalizedUserName"/> if it exists. /// </returns> Task<TUser?> FindByNameAsync(string normalizedUserName, CancellationToken cancellationToken); }