一.通过FormsAuthenication
1.编写动作方法
[HttpPost]
public ActionResult Login(Admin admin)
{
string adminName=new AdminManager().Admin(admin);
if(adminName!=null)
{
FormsAuthentication.SetAuthCookie(adminName,false);
ViewBag.Info=adminName;
}
else
{
ViewBag.Info="用户名或者密码错误!";
}
return View();
}
2.控制权限的Action
public ActionResult Index()
{
if(this.User.Identity.IsAuthenticated)
{
string adminName=this.User.Identity.Name;
ViewBag.adminName=adminName;
return View("ManagerPage");
}
else
{
return RedirectoAction("Index","Login");
}
}
3.在配置文件中配置Cookie的有效时间
在system.web节点里面进行配置
<authentication mode="Forms">
<forms loginUrl="~/Login/Index" timeout="2000"/>
</authentication>
model:验证方式(Forms None Password Windows)
loginUrl:验证失败跳转到登录页面
timeout:Cookie的有效期,单位是分钟
4.业务逻辑层
public string Login(Admin admin)
{
admin=loginService.Login(admin);
if(admin!=null)
{
HttpContext.Current.Session["CurrentAdmin"]=admin;
return admin.AdminName;
}
else
{
return null;
}
}
5.用户注销
public ActionResult Logout()
{
//从浏览器中删除Form身份验证票证
FormsAuthentication.SignOut();
Session["CurrentAdmin"]=null;
return View("Login");
}
二.升级版的授权---特性授权
1.直接使用[Authorize],放在你需要进行授权的地方,效果和上面的代码一样。
2.高级授权,指定某一个用户[Authorize(Users="XXX")]