1.通过这种处理 是过滤器做的么?
2.如果是过滤器 会做成全局过滤器处理么?
如果用全局过滤器的话 怎么做呢?
试了一下 如果
public override void OnActionExecuting(ActionExecutingContext context)
{
base.OnActionExecuting(context);
var user = context.HttpContext.Session.GetString("UserId");
if (user == null)
{
context.HttpContext.Response.Redirect("/Account/Index");
}
}
用下面代码做的话 会造成重定向(也就是死循环) 怎么过滤 登录页面不走过滤器呢?
3. 我看了一下 好像还有一个方法是在 controller 上做个基类 做session 过期
跳转到登录页面
这几个方法 哪个比较好呢?
直接配置就行.不用写这种东西.
能给个配置的例子么 ???
你是如果session过期以后,然后调转到登录页面是吧
你可以在你的过滤器上加个属性,bool类型,就是是否验证,默认是true的,
然后在AccountController的Index上加上这个过滤器,然后设置是否验证为false。
在然后你在过滤器中的代码改一下就好了
public bool IsCheck{get;set;}=true; public override void OnActionExecuting(ActionExecutingContext context) { if(!IsCheck) return; base.OnActionExecuting(context); var user = context.HttpContext.Session.GetString("UserId"); if (user == null) { context.HttpContext.Response.Redirect("/Account/Index"); } } 在index action加上过滤器[过滤器名称(IsCheck=false)]
http://www.cnblogs.com/wenhan/p/3379838.html
请参考一下这个网页里面的
如果要全局,直接在startup中使用 app.Use(async context => {});
能给个例子么?