您的位置:首页 > 其它

mvc中利用Attribute特性来进行进行简单的登陆验证

2014-10-20 20:47 218 查看
前段时间一直比较忙。好不容易忙完。闲的没事干,就捣腾了下mvc(ef),因为以前都是用三层框架来进行开发,mvc用的也不是很多。。。众所周知,在三层里面我们一般都是建一个基类,然后在基类里面写验证登录方法,然后在需要验证登录的页面继承这个基类即可。。。但到了mvc里面所有的视图页面的操作都转移到了控制器了。。这个时候我们在按照三层的方式建一个基类来继承验证登录,就没办法走通了。。。今天我就给大家来展示一个利用Attribute特性来验证登录。如果还有不知道这个东东的,可以百度一下Attribute。

首先我们建一个BaseAdminPage.cs的基类

public class BaseAdminPage : AuthorizeAttribute
{
public Admin_SysUser base_SysUser = new Admin_SysUser();

public override void OnAuthorization(AuthorizationContext filterContext)
{
#region 检查是否登录

Admin_SysUser su = new Admin_SysUser();
if (CookieManage.CheckSysUserIsLoginValid(out su))
{
su.LastLoginDate = DateTime.Now;
UserManage<Admin_SysUser>.UpdateAdminSysUser(su);

this.base_SysUser = su;
}
else
{
this.LoginOut();
}

#endregion
}
/// <summary>
/// 退出运营支持系统
/// </summary>
protected void LoginOut()
{
CookieManage.ClearSysUserLoginCookie();
HttpContext.Current.Response.Write("<script type=\"text/javascript\">window.parent.location.href=\"/AdminManage/Login\";</script>");
}
}


基类继承AuthorizeAttribute这个特性

然后我们在通过重写

特性中OnAuthorization这个方法来实现验证登录
到了这一步我们完成基类登录验证。。那么我们如何来调用它呢。。
接下来我们添加一个名为SysUserController的控制器
如果我们只要单个操作进行登录验证时,那么我们只需要如下代码所示


public class SysUserController : Controller
{
//
// GET: /SysUser/
[Controls.BaseAdminPage]//
public ActionResult Index()
{
return View();
}

}


  如果整个控制器需要验证登录,那么我们只需要把代码稍作修改,如下

[Controls.BaseAdminPage]
public class SysUserController : Controller
{
//
// GET: /SysUser/
public ActionResult Index()
{
return View();
}

}


至此在mvc中我们就完成了登录验证了。。。。

方法写的比较简单。在此望各位见谅。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: