/// <summary> /// 验证登录的情况 /// </summary> /// <param name="context"></param> /// <param name="type">0=检查登录,获取用户信息,不退出;1=检查登录,未登录直接退出</param> protected void CheckLogin(ActionExecutingContext context, int type) { CurrentUserTicket = new TicketEntity(); Microsoft.Extensions.Primitives.StringValues token = context.HttpContext.Request.Headers["AccessToken"]; if (!string.IsNullOrWhiteSpace(token)) { //存在AccessToken值,进行验证 RedisCacheTicket authBase = new RedisCacheTicket(token); TicketEntity userTicket = authBase.CurrentUserTicket; if (userTicket != null && userTicket.MemberID > 0) { CurrentUserTicket = userTicket; return; } } if (type == 1) { //以上检查未登录,直接退出 //直接输出结果,不经过Controller ResponseResult result = new ResponseResult() { errno = 30, errmsg = "请重新登录", }; context.Result = new ContentResult() { Content = result.SerializeObject(), StatusCode = 200 }; } }
public override void OnActionExecuting(ActionExecutingContext context) { base.OnActionExecuting(context); Microsoft.Extensions.Primitives.StringValues token = context.HttpContext.Request.Headers["AccessToken"]; if (!string.IsNullOrWhiteSpace(token)) { //存在AccessToken值,进行验证 var userTicket = redisRepository.GetValueAsync <UserTicket>(token).Result; if (userTicket != null && userTicket.ID.ToLong() > 0) { return; } } //其它情况直接跳出,直接输出结果 ResponseResult result = new ResponseResult() { errno = 30, errmsg = "请重新登录", }; context.Result = new ContentResult() { Content = result.SerializeObject(), StatusCode = 200 }; }
public void OnAuthorization(AuthorizationFilterContext context) { Microsoft.Extensions.Primitives.StringValues token = context.HttpContext.Request.Headers["AccessToken"]; if (!string.IsNullOrWhiteSpace(token)) { //存在AccessToken值,进行验证 //RedisCacheTicket authBase = new RedisCacheTicket(token); //TicketEntity userTicket = authBase.CurrentUserTicket; //if (userTicket != null && userTicket.ID.ToLong() > 0) //{ // CurrentUserTicket = userTicket; // return; //} } //直接输出结果,不经过Controller ResponseResult result = new ResponseResult() { errno = 30, errmsg = "请重新登录", }; context.Result = new ContentResult() { Content = result.SerializeObject(), StatusCode = 200 }; }
public override void OnActionExecuting(ActionExecutingContext context) { base.OnActionExecuting(context); Microsoft.Extensions.Primitives.StringValues token = context.HttpContext.Request.Headers["AccessToken"]; if (!string.IsNullOrWhiteSpace(token)) { //存在AccessToken值,进行验证 RedisCacheTicket authBase = new RedisCacheTicket(token); TicketEntity userTicket = authBase.CurrentUserTicket; if (userTicket != null && userTicket.ID.ToLong() > 0) { CurrentUserTicket = userTicket; return; } } //直接输出结果,不经过Controller ResponseResult result = new ResponseResult() { errno = 30, errmsg = "请重新登录", }; context.Result = new ContentResult() { Content = result.SerializeObject(), StatusCode = 200 }; }
/// <summary> /// 验证登录的情况 /// </summary> /// <param name="context"></param> /// <param name="type">0=检查登录,获取用户信息,不退出;1=检查登录,未登录直接退出</param> protected void CheckLogin(ActionExecutingContext context, int type) { var controllerName = context.RouteData.Values["Controller"].ToString(); var actionName = context.RouteData.Values["Action"].ToString(); CurrentUserTicket = new TicketEntity(); Microsoft.Extensions.Primitives.StringValues token = context.HttpContext.Request.Headers["AccessToken"]; if (!string.IsNullOrWhiteSpace(token)) { //存在AccessToken值,进行验证,以后升级方法 RedisCacheTicket authBase = new RedisCacheTicket(token); TicketEntity userTicket = authBase.CurrentUserTicket; if (userTicket != null && userTicket.ID.ToLong() > 0) { CurrentUserTicket = userTicket; return; } else { System.Console.WriteLine($"获取缓存身份信息:{userTicket.Msg},{controllerName}/{actionName}"); } } if (type == 1) { //以上检查未登录,直接退出 //直接输出结果,不经过Controller ResponseResult result = new ResponseResult() { errno = 30, errmsg = "身份过期,请重新登录", }; context.Result = new ContentResult() { Content = result.SerializeObject(), StatusCode = 200 }; } }
public override void OnActionExecuting(ActionExecutingContext context) { base.OnActionExecuting(context); var isDefined = false; var controllerActionDescriptor = context.ActionDescriptor as ControllerActionDescriptor; if (controllerActionDescriptor != null) { //true跳出 isDefined = controllerActionDescriptor.MethodInfo.GetCustomAttributes(inherit: true) .Any(a => a.GetType().Equals(typeof(JumpCheckLoginAttribute))); } if (!isDefined) { if (userAuth.ID <= 0) { ResponseResult result = new ResponseResult(HttpStatusCode.Unauthorized); context.Result = new ContentResult() { Content = result.SerializeObject(), StatusCode = (int)HttpStatusCode.OK }; } } }
public void OnAuthorization(AuthorizationFilterContext context) { var isDefined = false; var controllerActionDescriptor = context.ActionDescriptor as ControllerActionDescriptor; if (controllerActionDescriptor != null) { //true跳出 isDefined = controllerActionDescriptor.MethodInfo.GetCustomAttributes(inherit: true) .Any(a => a.GetType().Equals(typeof(JumpCheckLoginAttribute))); } if (!isDefined) { var userAuthService = context.HttpContext.RequestServices.GetRequiredService <IUserAuth>(); if (userAuthService.ID <= 0) { ResponseResult result = new ResponseResult(HttpStatusCode.Unauthorized); context.Result = new ContentResult() { Content = result.SerializeObject(), StatusCode = (int)HttpStatusCode.OK }; } } }