116 lines
3.9 KiB
C#
116 lines
3.9 KiB
C#
using IdentityService.Domain.Entities;
|
|
using IM.Commons;
|
|
using Microsoft.AspNetCore.Identity;
|
|
|
|
namespace IdentityService.Domain
|
|
{
|
|
public interface IIdRepository
|
|
{
|
|
/// <summary>
|
|
/// 通过用户名查找
|
|
/// </summary>
|
|
/// <param name="userName">用户名</param>
|
|
/// <returns></returns>
|
|
Task<User?> FindByUserNameAsync(string userName);
|
|
/// <summary>
|
|
/// 通过邮箱地址查找
|
|
/// </summary>
|
|
/// <param name="Email">邮箱地址</param>
|
|
/// <returns></returns>
|
|
Task<User?> FindByEmailAsync(string Email);
|
|
/// <summary>
|
|
/// 通过ID查询
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
Task<User?> FindByIdAsync(Guid id);
|
|
/// <summary>
|
|
/// 通过手机号查找
|
|
/// </summary>
|
|
/// <param name="phone"></param>
|
|
/// <returns></returns>
|
|
Task<User?> FindByPhoneAsync(string phone);
|
|
/// <summary>
|
|
/// 创建用户
|
|
/// </summary>
|
|
/// <param name="user"></param>
|
|
/// <param name="password"></param>
|
|
/// <returns></returns>
|
|
Task<IdentityResult> CreateAsync(User user, string password);
|
|
/// <summary>
|
|
/// 修改密码
|
|
/// </summary>
|
|
/// <param name="userId"></param>
|
|
/// <param name="password">原密码</param>
|
|
/// <returns></returns>
|
|
Task<IdentityResult> ChangePasswordAsync(User user, string password);
|
|
/// <summary>
|
|
/// 记录一次失败登录
|
|
/// </summary>
|
|
/// <param name="userId"></param>
|
|
/// <returns></returns>
|
|
Task<IdentityResult> AccessFailedAsync(User user);
|
|
/// <summary>
|
|
/// 获取角色
|
|
/// </summary>
|
|
/// <param name="userId"></param>
|
|
/// <returns></returns>
|
|
Task<IList<string>> GetRolesAsync(User user);
|
|
/// <summary>
|
|
/// 添加角色
|
|
/// </summary>
|
|
/// <param name="userId"></param>
|
|
/// <param name="role"></param>
|
|
/// <returns></returns>
|
|
Task<IdentityResult> AddRoleAsync(User user, string role);
|
|
/// <summary>
|
|
/// 为登录检查用户名密码
|
|
/// </summary>
|
|
/// <param name="userName"></param>
|
|
/// <param name="password"></param>
|
|
/// <param name="lockoutOnFailure">是否记录登录失败</param>
|
|
/// <returns></returns>
|
|
Task<SignInResult> CheckForSignInAsync(User user, string password, bool lockoutOnFailure);
|
|
|
|
/// <summary>
|
|
/// 删除用户
|
|
/// </summary>
|
|
/// <param name="userId"></param>
|
|
/// <returns></returns>
|
|
Task<IdentityResult> RemoveAsync(User user);
|
|
/// <summary>
|
|
/// 重置密码
|
|
/// </summary>
|
|
/// <param name="userId"></param>
|
|
/// <returns></returns>
|
|
|
|
Task<(IdentityResult, User?, string password)> ResetPasswordAsync(User user);
|
|
/// <summary>
|
|
/// 检查用户名
|
|
/// </summary>
|
|
/// <param name="username"></param>
|
|
/// <returns></returns>
|
|
Task<SignInResult> CheckUsernameAsync(string username);
|
|
/// <summary>
|
|
/// 检查邮箱
|
|
/// </summary>
|
|
/// <param name="email"></param>
|
|
/// <returns></returns>
|
|
Task<SignInResult> CheckEmailAsync(string email);
|
|
/// <summary>
|
|
/// 检查手机号
|
|
/// </summary>
|
|
/// <param name="phone"></param>
|
|
/// <returns></returns>
|
|
Task<SignInResult> CheckPhoneAsync(string phone);
|
|
/// <summary>
|
|
/// 批量获取用户信息
|
|
/// </summary>
|
|
/// <param name="ids"></param>
|
|
/// <returns></returns>
|
|
|
|
Task<IEnumerable<TResult>> GetUsersAsync<TResult>(ISpecification<User, TResult> specification);
|
|
Task<IEnumerable<User>> GetUsersAsync(ISpecification<User> specification);
|
|
}
|
|
}
|