利用ActionFilterAttribute来判断用户是否登陆等等
2010-04-25 17:42
369 查看
代码ActionFilterAttribute是Action过滤类,该属于会在执行一个action之前先执行.而ActionFilterAttribute是
VC的一个专门处理action过滤的类.基于这个原理,
假设某个action:AdminIndex,我们给该Action的最起码访问要求是用户必须是登陆状态.那么,我们要做的工作就是在
[CheckLogin()]//在该Action上面加一个判断
public ActionResult AdminIndex()
{
return View();
} // end AdminIndex
上面说了,ActionFilterAttribute是过滤基类,所以CheckLogin()判断要继承ActionFilterAttribute如下:
public class CheckLoginAttribute : ActionFilterAttribute
{
public CheckLoginAttribute()
{}
} // end class CheckLoginAttribute
在ActionFilterAttribute基类中有个抽象方当
public abstract void OnActionExecuting(ActionExecutingContext filterContext);
顾名思义就是指当要执行一个Action之前要做啥工作.在CheckLoginAttribute继承主类后,要将该OnActionExecuting(..)方法重写如:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{} // end Action
这样的话,我们就可以将我们想做的处理写在该方法里头.如:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// 如果用户没有登陆
if(!UserLogin.IsLogined)
{
// 处理方法
ErrorRedirect(filterContext);
return;
}// end if
}
// 错误处理方法
private void ErrorRedirect(ActionExecutingContext filterContext)
{
filterContext.Result = new RedirectToRouteResult("Default", new RouteValueDictionary(new { controller = "Home", action = "Default" }));
} // end ErrorRedirect
当执行ErrorRedirect方法时,它会自己选择指定的Route并跳转到非AdminIndex的Action中.
VC的一个专门处理action过滤的类.基于这个原理,
假设某个action:AdminIndex,我们给该Action的最起码访问要求是用户必须是登陆状态.那么,我们要做的工作就是在
[CheckLogin()]//在该Action上面加一个判断
public ActionResult AdminIndex()
{
return View();
} // end AdminIndex
上面说了,ActionFilterAttribute是过滤基类,所以CheckLogin()判断要继承ActionFilterAttribute如下:
public class CheckLoginAttribute : ActionFilterAttribute
{
public CheckLoginAttribute()
{}
} // end class CheckLoginAttribute
在ActionFilterAttribute基类中有个抽象方当
public abstract void OnActionExecuting(ActionExecutingContext filterContext);
顾名思义就是指当要执行一个Action之前要做啥工作.在CheckLoginAttribute继承主类后,要将该OnActionExecuting(..)方法重写如:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{} // end Action
这样的话,我们就可以将我们想做的处理写在该方法里头.如:
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
// 如果用户没有登陆
if(!UserLogin.IsLogined)
{
// 处理方法
ErrorRedirect(filterContext);
return;
}// end if
}
// 错误处理方法
private void ErrorRedirect(ActionExecutingContext filterContext)
{
filterContext.Result = new RedirectToRouteResult("Default", new RouteValueDictionary(new { controller = "Home", action = "Default" }));
} // end ErrorRedirect
当执行ErrorRedirect方法时,它会自己选择指定的Route并跳转到非AdminIndex的Action中.
相关文章推荐
- ASP.NET MVC 利用ActionFilterAttribute来判断用户是否登陆等等
- 利用ActionFilterAttribute来判断用户是否登陆等等
- Servlet 过滤器Filter判断用户是否登陆(jsp页面)
- 利用Cookie保存用户登录信息,利用Filter来判断用户是否登录
- 用过滤器Filter判断用户是否登陆
- 用过滤器Filter判断用户是否登陆
- 用过滤器Filter判断用户是否登陆
- Filter拦截器判断用户是否登陆 (2012-01-06 10:55:13)
- 利用SQL临时表判断用户是否登录
- iOS - 判断用户是否已经登陆
- android判断用户是否已登陆详细代码
- 判断用户是否登录,如果登录了放行,否则跳转到登陆页面
- Magento中如何判断一个用户是否已经登陆
- MVC中利用ActionFilterAttribute过滤关键字
- Django中判断用户是否登陆
- 利用JS判断用户是否上网(连接网络)
- PHP中Cookie的使用---添加/更新/删除/获取Cookie 及 自动填写该用户的用户名和密码和判断是否第一次登陆
- 利用json和prototype来做用户是否正确的判断,传统的方式是提交后做判断,这里使用的是ajax异步传输的方式。
- magento -- magento中如何判断一个用户是否已经登陆
- 使用Filter验证用户是否登陆,完整示例