ASP.NET MVC 身份验证-利用cookie记录登录用户
2019-04-08 09:23
309 查看
说明:原理性的东西在后续的章节会涉及、此处讲述使用说明。
一、关于Cookie和Session此处简单介绍一下、作为初学者可以先了解以下两点
1.Cookie是存于客户端的(即用户电脑)、Session是存于服务端的。
2.Cookie数据所有的浏览器端共享、Session数据由服务器开辟内存保存、每一个浏览器都有一个唯一的SessionID
人手一份
二、首先需要介绍一下FormsAuthentication密封类。
1.用户登录成功后、需要保存用户信息到Cookie(本地)可以调用如下方法、下次调用就会判断是否有Cookie信息
如果Cookie信息没有过期可以直接跳过登录。
该类有一个方法SetAuthCookie(string userName, bool createPersistentCookie)
注意:该方法如果被调用多次、则保存最后一个设置的Cookie
[code] public ActionResult AdminLogin(SysAdmin objAdmin) { string adminName = new BLL.SysAdminManager().AdminLogin(objAdmin); if (adminName != null) { FormsAuthentication.SetAuthCookie(adminName, true); TempData["adminName"] = adminName; return RedirectToAction("GetAllStuList", "Student"); } else { ViewBag.Info = "用户或密码错误"; } return View("AdminLogin"); }
2.判断用户是否通过身份验证并且获取用户名称、没有通过验证、则转到登录页面
已经通过验证、则不需要登录
[code] public ActionResult Index() { if (this.User.Identity.IsAuthenticated) { string adminName = this.User.Identity.Name; //获取写入的adminName ViewBag.adminName = adminName return View("StudentManage"); } else { return RedirectToAction("Index","SysAdmin"); } }
3.控制器或控制器方法如果添加了 [Authorize]特性、则通过路由访问之前需要验证是否已经通过身份验证、作用类似于第二点if判断体。
[code] [Authorize] public ActionResult Index() { string adminName = this.User.Identity.Name; //获取写入的adminName ViewBag.adminName = adminName; return View("StudentManage"); }
如果浏览器没有登录成功也、就是执行了 FormsAuthentication.SetAuthCookie(adminName, true)方法、那么url访问该路由就会失败。会出现一个如下界面
如果想要浏览器访问url失败后跳转到指定的页面、可以在Web.config的 <system.web>节点中添加如下标签
[code] <authentication mode="Forms"> <forms loginUrl="~/SysAdmin/Index" timeout="2880" /> </authentication>
访问失败就会跳转到指定的页面
相关文章推荐
- Asp.net MVC利用knockoutjs实现登陆并记录用户的内外网IP及所在城市(推荐)
- asp.net中的窗体身份验证(完整篇之三:用户登录页面)
- asp.net mvc利用knockoutjs实现登陆并记录用户的内外网IP及所在城市
- ASP.NET MVC5+MySql使用ASP.NET 身份验证实现用户和角色功能 1 概述 目标:使用MySql数据库,建立一个使用ASP.NET 身份验证的应用,并实现角色功能,身份
- Asp.Net使用加密cookie代替session验证用户登录状态 源码分享 欢迎拍砖
- asp.net利用cookie保存用户密码实现自动登录的方法
- 【记录】ASP.NET MVC 4/5 Authentication 身份验证无效
- asp.net利用cookie保存用户密码实现自动登录的方法
- 【记录】ASP.NET MVC 4/5 Authentication 身份验证无效
- Asp.net mvc验证用户登录之Forms实现-转
- ASP.NET MVC中利用AuthorizeAttribute实现访问身份是否合法以及Cookie过期问题的处理
- ASP.NET MVC 使用Filter过滤器 验证用户登录状态
- ASP.NET MVC中利用AuthorizeAttribute实现访问身份是否合法以及Cookie过期问题的处理之IIS WebSite anonymous Authentication
- Asp.net mvc验证用户登录之Forms实现
- asp.net中的窗体身份验证(完整篇之三:用户登录页面)
- Asp.Net使用加密cookie代替session验证用户登录状态 源码分享
- asp.net cookie 实现 记录用户登录状态,下次自动登录
- ASP.net MVC 中Security.FormsAuthentication验证用户的状态(匿名|已登录)
- ASP.Net MVC Filter验证用户登录
- ASP.NET MVC Cookie 身份验证