/// <summary> /// 判断用户是否包含当前角色。 /// </summary> /// <param name="user">用户实例。</param> /// <param name="normalizedRoleName">验证角色名称。</param> /// <param name="cancellationToken">取消标志。</param> /// <returns>返回判断结果。</returns> public override async Task <bool> IsInRoleAsync(TUser user, string normalizedRoleName, CancellationToken cancellationToken = default) { var role = await RoleManager.FindByNameAsync(normalizedRoleName); if (role == null) { return(false); } return(await UserRoleContext.AnyAsync(x => x.UserId == user.UserId && x.RoleId == role.RoleId, cancellationToken)); }
/// <summary> /// 添加用户角色。 /// </summary> /// <param name="user">当前用户实例。</param> /// <param name="normalizedRoleName">验证角色名称。</param> /// <param name="cancellationToken">取消标志。</param> public override async Task AddToRoleAsync(TUser user, string normalizedRoleName, CancellationToken cancellationToken = default) { var role = await RoleManager.FindByNameAsync(normalizedRoleName); if (role == null || await UserRoleContext.AnyAsync(x => x.UserId == user.UserId && x.RoleId == role.RoleId, cancellationToken)) { return; } //更新用户表显示角色Id和角色名称 await UserRoleContext.BeginTransactionAsync(async db => { if (!await db.CreateAsync(CreateUserRole(user, role), cancellationToken)) { return(false); } return(await SetMaxRoleAsync(db.As <TRole>(), user.UserId, cancellationToken)); }, cancellationToken : cancellationToken); }