浅谈MVC Form认证
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,简单的谈一下MVC的Form认证。在做MVC项目时,用户登录认证需要选用Form认证时,我们该怎么做呢?下面我们来简单给大家说一下。首先说一下步骤1、用户登录时,如果校验用户名密码通过后,需要调用Fo
千家信息网最后更新 2025年02月02日浅谈MVC Form认证
简单的谈一下MVC的Form认证。
在做MVC项目时,用户登录认证需要选用Form认证时,我们该怎么做呢?下面我们来简单给大家说一下。
首先说一下步骤
1、用户登录时,如果校验用户名密码通过后,需要调用FormsAuthentication.SetAuthCookie()这个方法。
2、用户退出时,需要调用FormsAuthentication.SignOut();方法
3、在配置文件web.config中,system.web 节点下, 配置
4、校验:HttpContext.User.Identity.IsAuthenticated,如果是false,则没有通过认证,如果是true,则通过了认证
以上这三部,即可完成用户登录的Form认证了。
好了,下面我们来看一下具体的代码。(View中的代码就不贴了,只贴Controller中的代码吧)
1、建立一个用于用户登录用的Model
1 public class LoginViewModel2 {3 [DisplayName("用户名")]4 public string UserName { get; set; }5 [DisplayName("密码")]6 public string Password { get; set; }7 }
2、建立登录用的Controller与页面,其中Controller里面有登录与退出两个Action
1 public class LoginController : Controller 2 { 3 // GET: Login 4 public ActionResult Index(LoginViewModel loginViewModel) 5 { 6 if (loginViewModel.UserName == "admin" && loginViewModel.Password == "123456") 7 { 8 FormsAuthentication.SetAuthCookie(loginViewModel.UserName, false); 9 return RedirectToAction("Index", "Main");10 }11 return View();12 }13 14 //GET: LogOut15 public ActionResult LogOut()16 {17 FormsAuthentication.SignOut();18 return RedirectToAction("Index", "Login");19 }20 }
3、建立一个登录后,用户跳转的页面与Controller
1 public class MainController : BaseController2 {3 // GET: Main4 public ActionResult Index()5 {6 return View();7 }8 }
4、登陆后跳转的页面的Controller是继承的BaseController,那么BaseController是怎么写的呢?
1 public class BaseController : Controller 2 { 3 protected override void OnActionExecuting(ActionExecutingContext filterContext) 4 { 5 base.OnActionExecuting(filterContext); 6 //登录认证处理 7 if (!filterContext.HttpContext.User.Identity.IsAuthenticated) 8 { 9 //未登录10 Response.Redirect("~/Login/Index");11 }12 else13 {14 //已登录,Action级权限控制处理15 var controllerName = filterContext.RouteData.Values["controller"].ToString();//控制器名称16 var actionName = filterContext.RouteData.Values["action"].ToString(); //Action名称17 //根据controllerName与actionName进行权限检查18 /*19 if()20 { }21 else22 { }23 */24 }25 }26 }
这个BaseController很简单,大体的作用就是,方式继承这个BaseController的控制器,当执行其下面的Action时,会进行Form校验,如果校验成功,则……,如果校验不成功则……,
登陆后的页面的Controller都会继承BaseController,这样,就不用在每个Controller中的Action重复的写Form认证的代码了。
登录
认证
用户
代码
页面
控制
成功
名称
密码
控制器
方法
权限
用户名
处理
登陆
配置
不用
两个
作用
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
监控软件开发用什么
万方数据库dns
魔兽世界转服务器cd多久
使用什么进入test数据库
数据库 查询 两列求和
软件开发专业面试说爱玩游戏
航海王启航服务器划分
我的世界服务器如何申请管理
数据库中的符号
冠牛网络技术有限公司怎么样
网络协议和网络技术的区别
服务器两U说的是什么
网络安全包保管理
庆阳烟草网络安全加固
svn 服务器搭建
软件开发工具pdf 百度云
北京智能软件开发视频
数据库报错列与值不匹配
新乡市邦胜网络技术有限公司
深圳口碑好的网络技术服务费
ibm服务器一直黑屏
网络安全应用认证
汽车硬件及基础软件开发
阿里云 网络安全组
网络安全法入侵网站
t6管理软件服务器登录
网络安全大赛视频kk
xml连接数据库
我的世界数据库怎么弄
洗衣软件开发者求职