static void Main(string[] args) { string keyDir = AppDomain.CurrentDomain.BaseDirectory; if (RSAUtils.TryGetKeyParameters(keyDir, true, out RSAParameters keyParams) == false) { Console.WriteLine("按任意键开始生产RSAKey文件。"); Console.Read(); keyParams = RSAUtils.GenerateAndSaveKey(keyDir); Console.WriteLine("RSAKey文件生存成功!"); } else { //Console.WriteLine("RSAKey文件已经存在!"); Console.WriteLine("生成jwtToken"); JwtTokenUtils jwtTokenUtils = new JwtTokenUtils(); string jwtToken = jwtTokenUtils.GenerateJwtToken("zhuqp", "", "pbirs"); Console.WriteLine(jwtToken); Console.WriteLine("验证jwtToken"); string username = jwtTokenUtils.ValidateJwtToken(jwtToken, "pbirs"); Console.WriteLine(username); Console.Read(); } }
public void OnActionExecuting(ActionExecutingContext context) { bool allowAnonymous = context.Filters .Where(filter => filter.GetType() == typeof(AllowAnonymousFilter)) .Count() > 0; if (!allowAnonymous) { var token = JwtTokenUtils.GetToken(context.HttpContext); bool isValidToken = JwtTokenUtils.IsValidToken(token); if (!isValidToken) { context.HttpContext.Response.StatusCode = 401; context.Result = new EmptyResult(); return; } if (context.HttpContext.Response.StatusCode == 401) { context.Result = new EmptyResult(); return; } } }
public string GetPowerBIUrl(string userName, string pbiName) { string url = ConfigurationManager.AppSettings["PBIReportsUrl"]; string audience = ConfigurationManager.AppSettings["PBIAudience"]; JwtTokenUtils jwtTokenUtils = new JwtTokenUtils(); string token = jwtTokenUtils.GenerateJwtToken(userName, "", audience); return(url + pbiName + "?rs:embed=true&token=" + token); }
/// <summary> /// 验证URL中的Jwt Token /// </summary> /// <param name="token"></param> /// <returns>返回Jwt Token中所携带的UserName</returns> private string CheckJwtToken(string token) { string username = null; JwtTokenUtils jwtTokenUtils = new JwtTokenUtils(); username = jwtTokenUtils.ValidateJwtToken(token, ConfigurationManager.AppSettings["Jwt_Audience_PBIRS"] ?? "pbirs"); return(username); }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = "accounts")] HttpRequestMessage req, ILogger log, CancellationToken token) { var securityToken = JwtTokenUtils.GetSecurityToken(req); var objectId = JwtTokenUtils.GetObjectId(securityToken); var accounts = await _mediator.Send( new GetAccountQuery { UserId = objectId }, token); return(new OkObjectResult(accounts)); }
public async Task <IActionResult> Login([FromBody] JsonLoginModel userModel) { var user = await _userManager.FindByNameAsync(userModel.username); if (user != null && await _userManager.CheckPasswordAsync(user, userModel.password)) { var securityKey = _configuration["JwtTokens:Secret"]; var token = JwtTokenUtils.GenerateToken(user, securityKey); var validUntil = token.Claims.FirstOrDefault(o => o.Type == "exp")?.Value; return(Json(new { jwt = new JwtSecurityTokenHandler().WriteToken(token), validUntil })); } return(BadRequest("Incorrect combination of username and password")); }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "delete", Route = "accounts")] HttpRequestMessage req, ILogger log, CancellationToken token) { var jwtSecurityToken = JwtTokenUtils.GetSecurityToken(req); var objectId = JwtTokenUtils.GetObjectId(jwtSecurityToken); try { await _mediator.Send(new CloseAccountsCommand { UserId = objectId }, token); return(new OkResult()); } catch (ValidationException ex) { log.LogError("Validations Errors {errors}", ex.Errors); return(new BadRequestObjectResult(ex)); } }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "put", Route = "accounts")] HttpRequestMessage req, ILogger log, CancellationToken token) { var jwtSecurityToken = JwtTokenUtils.GetSecurityToken(req); var objectId = JwtTokenUtils.GetObjectId(jwtSecurityToken); var command = await req.Content.ReadAsAsync <UpdateAccountCommand>(token); command.UserId = objectId; try { var id = await _mediator.Send(command, token); log.LogInformation("Updated account with id {id}", id); return(new OkResult()); } catch (ValidationException ex) { log.LogError("Validations Errors {errors}", ex.Errors); return(new BadRequestObjectResult(ex)); } }
public async Task <bool> GetLoginByName(JObject json) { try { _invillaContext = new InvillaContext(); var model = JsonConvert.DeserializeObject <LoginViewModel>(json.ToString()); var loginDB = _invillaContext.Logins.Where(x => x.FullName == model.FullName).FirstOrDefault(); var roleDB = _invillaContext.Roles.Where(x => x.Id == model.IdRole).FirstOrDefault(); var role = (string.IsNullOrEmpty(roleDB.Role)) ? "admin" : roleDB.Role; model.Password = CryptoConfig.EncryptPassword(model.Password); if (model.FullName == loginDB.FullName && model.Password == loginDB.Password) { var claims = new List <Claim>() { new Claim("UserLoan", model.FullName), new Claim("Password", model.Password), new Claim("Role", role) }; var token = JwtTokenUtils.GenerateInvillaUserToken(claims); loginDB.Token = token; _invillaContext.Update(loginDB); _invillaContext.SaveChanges(); return(true); } return(false); } catch (Exception ex) { return(false); } }
public string CreateToken(Guid userId) { string token = new JwtTokenUtils("ajsdhausd62313gshaJJJ").GenerateToken(userId.ToString()); return($"Bearer {token}"); }