static void Main(string[] args) { Console.WriteLine("Hello Redis!"); _redisHandler = new RedisHandler("127.0.0.1:6379"); Console.WriteLine($"connected?{_redisHandler.IsConnected}"); Console.WriteLine($"set?{_redisHandler.Set("key1", "value1")}"); var getValue = _redisHandler.Get <string>("key1"); Console.WriteLine($"get key1?{getValue}"); Console.WriteLine($"remove key1?{_redisHandler.Remove("key1")}"); getValue = _redisHandler.Get <string>("key1"); Console.WriteLine($"get key1?{getValue}"); dynamic dobj = new ExpandoObject(); dobj.key1 = "value1"; dobj.key2 = "value2"; dobj.key3 = 1000; var jsonObject = JsonConvert.SerializeObject(dobj); _redisHandler.Set <string>("json", jsonObject); Console.WriteLine(_redisHandler.Get <string>("json")); Console.WriteLine($"keys:{_redisHandler.GetKeyAll().ToString<String>()}"); using (var manager = _redisHandler.GetRedisManagerPool()) { using (var client = manager.GetClient()) { Console.WriteLine($"ping:{client.Ping()}"); } } }
public async Task <IActionResult> Login(UserQuery query) { try { if (query == null) { _result.status = (int)HttpStatusCode.BadRequest; _result.msg = "query is not null"; _result.resultData = null; return(BadRequest(_result)); } if (string.IsNullOrWhiteSpace(query.CName)) { _result.status = (int)HttpStatusCode.BadRequest; _result.msg = "CName is not null"; _result.resultData = null; return(BadRequest(_result)); } if (string.IsNullOrWhiteSpace(query.CPasswd)) { _result.status = (int)HttpStatusCode.BadRequest; _result.msg = "CPasswd is not null"; _result.resultData = null; return(BadRequest(_result)); } var res = await _customerServer.UserLogin(new UserQuery() { CName = query.CName, CPasswd = query.CPasswd }); if (res == null) { _result.status = (int)HttpStatusCode.Forbidden; _result.msg = "fail"; _result.resultData = res; return(NotFound(_result)); } var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.UTF8.GetBytes(_configuration.GetSection("clientJwt")?.Value); var authTime = DateTime.UtcNow; var expiresAt = authTime.AddSeconds(Convert.ToDouble(_configuration.GetSection("loginTimeSpan")?.Value)); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(JwtClaimTypes.Audience, "api"), new Claim(JwtClaimTypes.Id, res?.CId.ToString()), new Claim(JwtClaimTypes.Name, res?.CName) }), Expires = expiresAt, SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); var tokenString = tokenHandler.WriteToken(token); //token HttpContext.Response.Cookies.Append(SystemCodeEnum.P00002.ToString(), tokenString, new CookieOptions { HttpOnly = true }); HttpContext.Response.Cookies.Append(SystemCodeEnum.uid.ToString(), res?.CId.Value.ToString("N"), new CookieOptions { HttpOnly = false }); //存入redis。操作需要登陆的界面时,需要用token+userid验证 var ret = _redis.Set(res?.CId.Value.ToString("N"), tokenString, TimeSpan.FromSeconds(Convert.ToDouble(_configuration.GetSection("loginTimeSpan")?.Value))); _result.status = (int)HttpStatusCode.OK; _result.msg = "success"; _result.resultData = res; return(Ok(_result)); } catch (Exception ex) { _log.Error("UserLogin method error:" + ex); _result.status = (int)HttpStatusCode.InternalServerError; _result.msg = "fail"; _result.resultData = null; return(StatusCode(_result.status, _result)); } }