MVC 自定义特性(验证用户登录session是否已经过期)

新建一个类

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false)]
public sealed class DomainLogInAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{

--start(这段代码的作用:可能你并不想验证所有的conreoller或者Action,然后你把类名(DomainLogInAttribute )加到不想验证的controller或者Actio上面,例子在下面。)--
object[] actionFilter = filterContext.ActionDescriptor.GetCustomAttributes(typeof(DomainLogInAttribute), false);
object[] controllerFilter = filterContext.ActionDescriptor.ControllerDescriptor.GetCustomAttributes(typeof(DomainLogInAttribute), false);
if (controllerFilter.Length == 1 || actionFilter.Length == 1)
{
return;
}

--end--

if (filterContext.HttpContext.Session["Code"] == null)
{

//当session过期时跳转的界面
filterContext.Result = new RedirectResult("../Login/Login");//也可以跳到别的站点
}
}
}

//处理特殊的Controller或者Action

MVC  自定义特性(验证用户登录session是否已经过期)

可能还会遇到一个问题,如果有iframe框架的话,页面会嵌在iframe框架中,下面地址有详细解决方案(貌似第一种是Java的,个人感觉第二种比较简洁)
http://1008610086.blog.51cto.com/4995677/1538464