82 lines
5.5 KiB
C#
82 lines
5.5 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.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Microsoft.AspNet.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"/>, as an asynchronous operation.
|
|
/// </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"/>, as an asynchronous operation.
|
|
/// </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, as an asynchronous operation.
|
|
/// </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, as an asynchronous operation.
|
|
/// </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, as an asynchronous operation.
|
|
/// </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"/>, as an asynchronous operation.
|
|
/// </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"/>, as an asynchronous operation.
|
|
/// </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);
|
|
}
|
|
} |