public async Task <string> GenerateTokenAsync(ADUserT user) { var claims = new[] { new Claim(JwtRegisteredClaimNames.Sub, user.LoginName), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")), new Claim(JwtRegisteredClaimNames.Iat, DateTime.Now.ToUniversalTime().ToString(CultureInfo.InvariantCulture), ClaimValueTypes.Integer64), //new Claim(JwtRegisteredClaimNames.Email, user.Email), //用户名 new Claim(ClaimTypes.Name, user.LoginName), //角色 new Claim(ClaimTypes.Role, user.Role) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_jwtBearerOption.SecurityKey)); var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken( _jwtBearerOption.Issuer, _jwtBearerOption.Audience, claims, expires: DateTime.Now.AddMinutes(_jwtBearerOption.AccessExpiration), signingCredentials: credentials ); return(await Task.FromResult(new JwtSecurityTokenHandler().WriteToken(token))); }
public async Task <ActionResult> Put([FromBody] ADUserT value) { if (string.IsNullOrWhiteSpace(value.LoginPwd)) { return(BadRequest("Invalid password.")); } value.Role = ADUserT.GetRole(value.Role); value.LoginPwdHash = PasswordStorage.CreateHash(value.LoginPwd); var user = await _userRep.FindEntityAsync <ADUserT>(x => x.LoginName == value.LoginName); if (user != null) { //user = MapperHelper<ADUserT, ADUserT>.MapTo(value); //user = _mapper.Map<ADUserT>(value); await _userRep.UpdateAsync(value); return(Ok()); } await _userRep.InsertAsync(value); return(Ok()); }