public async Task UserAvatar(IFormFile avatar) { var userId = userManager.GetUserId(User); var user = await userManager.FindByIdAsync(userId); if (avatar == null) { throw new BadRequestException("文件格式不正确"); } if (!avatar.ContentType.StartsWith("image/")) { throw new BadRequestException("文件格式不正确"); } if (avatar.Length > 1048576) { throw new BadRequestException("文件大小不能超过 1 Mb"); } await using var stream = new System.IO.MemoryStream(); await avatar.CopyToAsync(stream); stream.Seek(0, System.IO.SeekOrigin.Begin); var buffer = new byte[stream.Length]; await stream.ReadAsync(buffer); user.Avatar = buffer; await userManager.UpdateAsync(user); }
private async Task <UserInfoModel> GetCurrentUserInfo() { var userInfoRet = new UserInfoModel { SignedIn = signInManager.IsSignedIn(User) }; var userId = userManager.GetUserId(User); var user = await userManager.FindByIdAsync(userId); if (user == null) { return(new UserInfoModel()); } userInfoRet.Name = user.Name; userInfoRet.UserId = user.Id; userInfoRet.UserName = user.UserName; userInfoRet.Privilege = user.Privilege; userInfoRet.Coins = user.Coins; userInfoRet.Experience = user.Experience; if (userInfoRet.SignedIn) { userInfoRet.EmailConfirmed = user.EmailConfirmed; userInfoRet.PhoneNumberConfirmed = user.PhoneNumberConfirmed; userInfoRet.Email = user.Email; userInfoRet.PhoneNumber = user.PhoneNumber; userInfoRet.OtherInfo = IdentityHelper.GetOtherUserInfo(string.IsNullOrEmpty(user.OtherInfo) ? "{}" : user.OtherInfo); } return(userInfoRet); }