| File: IUserEmailStore.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.Threading; using System.Threading.Tasks; namespace Microsoft.AspNetCore.Identity; /// <summary> /// Provides an abstraction for the storage and management of user email addresses. /// </summary> /// <typeparam name="TUser">The type encapsulating a user.</typeparam> public interface IUserEmailStore<TUser> : IUserStore<TUser> where TUser : class { /// <summary> /// Sets the <paramref name="email"/> address for a <paramref name="user"/>. /// </summary> /// <param name="user">The user whose email should be set.</param> /// <param name="email">The email to set.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns>The task object representing the asynchronous operation.</returns> Task SetEmailAsync(TUser user, string? email, CancellationToken cancellationToken); /// <summary> /// Gets the email address for the specified <paramref name="user"/>. /// </summary> /// <param name="user">The user whose email should be returned.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns>The task object containing the results of the asynchronous operation, the email address for the specified <paramref name="user"/>.</returns> Task<string?> GetEmailAsync(TUser user, CancellationToken cancellationToken); /// <summary> /// Gets a flag indicating whether the email address for the specified <paramref name="user"/> has been verified, true if the email address is verified otherwise /// false. /// </summary> /// <param name="user">The user whose email confirmation status should be returned.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns> /// The task object containing the results of the asynchronous operation, a flag indicating whether the email address for the specified <paramref name="user"/> /// has been confirmed or not. /// </returns> Task<bool> GetEmailConfirmedAsync(TUser user, CancellationToken cancellationToken); /// <summary> /// Sets the flag indicating whether the specified <paramref name="user"/>'s email address has been confirmed or not. /// </summary> /// <param name="user">The user whose email confirmation status should be set.</param> /// <param name="confirmed">A flag indicating if the email address has been confirmed, true if the address is confirmed otherwise false.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns>The task object representing the asynchronous operation.</returns> Task SetEmailConfirmedAsync(TUser user, bool confirmed, CancellationToken cancellationToken); /// <summary> /// Gets the user, if any, associated with the specified, normalized email address. /// </summary> /// <param name="normalizedEmail">The normalized email address to return the user for.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns> /// The task object containing the results of the asynchronous lookup operation, the user if any associated with the specified normalized email address. /// </returns> Task<TUser?> FindByEmailAsync(string normalizedEmail, CancellationToken cancellationToken); /// <summary> /// Returns the normalized email for the specified <paramref name="user"/>. /// </summary> /// <param name="user">The user whose email address to retrieve.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns> /// The task object containing the results of the asynchronous lookup operation, the normalized email address if any associated with the specified user. /// </returns> Task<string?> GetNormalizedEmailAsync(TUser user, CancellationToken cancellationToken); /// <summary> /// Sets the normalized email for the specified <paramref name="user"/>. /// </summary> /// <param name="user">The user whose email address to set.</param> /// <param name="normalizedEmail">The normalized email to set for the specified <paramref name="user"/>.</param> /// <param name="cancellationToken">The <see cref="CancellationToken"/> used to propagate notifications that the operation should be canceled.</param> /// <returns>The task object representing the asynchronous operation.</returns> Task SetNormalizedEmailAsync(TUser user, string? normalizedEmail, CancellationToken cancellationToken); }