ASP.NET CORE MVC自定义用户登录拦截器
在项目的任意位置新建一个类,这个类要继承Attribute类和IActionFilter接口,并要实现这个接口。OnActionExecuted在Controller的Action方法执行完后执行,OnActionExecuting在Controller的Action方法执行前,但是Action方法的参数模型绑定完成后执行,这样我们就可以在OnActionExecuting进行是否登录的判断
代码如下:
public class PageBaseAttribute : Attribute, IActionFilter
{
/// <summary>
///
/// </summary>
/// <param name="context"></param>
public void OnActionExecuted(ActionExecutedContext context)
{
}
/// <summary>
///
/// </summary>
/// <param name="context"></param>
public void OnActionExecuting(ActionExecutingContext context)
{
//当前请求的完整url
string oriUrl = context.HttpContext.Request.Scheme + "://" + context.HttpContext.Request.Host + context.HttpContext.Request.PathBase
+ context.HttpContext.Request.Path + context.HttpContext.Request.QueryString;
string session_Data = context.HttpContext.Session.GetString("你的登录session的key");
if (string.IsNullOrWhiteSpace(session_Data))
{
context.Result = new RedirectResult("/user/Login?redirectUrl=" + oriUrl);
return;
}
}
}