ASP.NET的MVC中使用Session做身份验证(附代码下载)
场景
ASP.NET中MVC编程模式简介与搭建HelloWorld项目:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/106795640
在上面使用MVC搭建起来Hello World项目时为了避免太多程序代码造成混淆。在新建MVC项目时将默认的验证调整为无身份验证。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
新建完项目后建立新的文件夹Filters,然后在此文件夹下添加类AuthorizePlusAttribute
此类要继承AuthorizeAttribute,并重写方法OnAuthorization
注意要添加命名空间
using System.Web.Mvc;
AuthorizePlusAttribute类代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;namespace MVCSessionTest.Filters
{public class AuthorizePlusAttribute : AuthorizeAttribute{public override void OnAuthorization(AuthorizationContext filterContext){if (Convert.ToBoolean(filterContext.HttpContext.Session["auth"])){//验证通过}else{//验证失败直接丟回 401base.HandleUnauthorizedRequest(filterContext);}}}
}
然后在HomeController中添加三个Action,分别模拟登录、注销和后台
public ActionResult Login(){Session["auth"] = true;return RedirectToAction("Index");}public ActionResult Logout(){Session["auth"] = false;return RedirectToAction("Index");}[AuthorizePlus]public ActionResult Backend(){return Content("您已进入后台");}
注意要使用AuthorizePlus注解需要添加命名空间
using System.Web.Mvc;
然后在index.cshtml中添加三个链接
<p><a class="btn btn-default" href="@Url.Action("Backend")">后台 »</a></p><p><a class="btn btn-default" href="@Url.Action("Login")">登录 »</a></p><p><a class="btn btn-default" href="@Url.Action("Logout")">注销 »</a></p>
运行项目
如果未登录直接进入后台或者注销之后再次进入后台则会
只有在点击登录之后才能进入后台
示例代码下载
https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/12584653
ASP.NET的MVC中使用Session做身份验证(附代码下载)相关推荐
- ASP.NET的MVC中使用Cookie做身份验证(附代码下载)
场景 ASP.NET的MVC中使用Session做身份验证(附代码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1071 ...
- Winform中实现自定义屏保效果(附代码下载)
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建form ...
- Winform中实现文件批量更名器(附代码下载)
场景 对一个文件夹中的文件进行某种格式的重命名 比如下面文件夹内的文件 程序运行效果 点击文件-打开,打开此文件夹后然后Ctrl+a全选此文件夹所有文件,点击打开 然后在序号设置中可以选择预设模板和起 ...
- [导入]Asp.net 2.0 实现自定义Email格式有效性验证(示例代码下载)
文章来源:http://blog.csdn.net/ChengKing/archive/2006/12/21/1452160.aspx
- Winform中实现监控CPU内存使用率(附代码下载)
场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建一个窗体 ...
- [MVC]Asp.net MVC中的Session
[MVC]Asp.net MVC中的Session 2008年12月9日 分类: ASP.NET, ASP.NET MVC, C#, 开发笔记 最近使用ASP.NET MVC 中的Controller ...
- 007.Adding a view to an ASP.NET Core MVC app -- 【在asp.net core mvc中添加视图】
索引: 目录索引 Adding a view to an ASP.NET Core MVC app 在asp.net core mvc中添加视图 2017-3-4 7 分钟阅读时长 本文内容 1.Ch ...
- ASP.NET Core MVC 中的 [Controller] 和 [NonController]
Controller VS NonController 中内置的约定 在 ASP.NET Core MVC 中已经统一了 MVC 和 Web Api 及 Web Pages, 他们具有相同的 Cont ...
- 如何在 Asp.Net Core MVC 中处理 null 值
译文链接:https://www.infoworld.com/article/3434624/how-to-handle-null-values-in-aspnet-core-mvc.html 传统的 ...
最新文章
- 实现EditText输入金额(小数点后两位)
- 开发一次、多端覆盖的开源统一框架
- IOC的理解,整合AOP,解耦对Service层和Dal层的依赖
- MySQL中查询时间最大的一条记录
- Redis.conf常见配置介绍
- Windows I/O模型、同步/异步、阻塞/非阻塞
- Ajax — 第六天
- PCI总线原理(二)
- 不实用额外变量 交换_变量交换:巧用异或运算
- 51单片机dds信号发生器 扫频 c语言,基于AT89C51单片机和DDS器件实现频率特征测试仪的设计...
- php password_hash和password_verify
- git之提交本地代码到远端指定仓库
- gitlab查看word文档_gitlab迁移
- python批量检测域名和url能否打开
- java后台生成内嵌logo的二维码图片以及添加文字
- R实战 | Nomogram(诺莫图/列线图)及其Calibration校准曲线绘制
- 0宽字符隐藏文本加密及原理
- PHP-简单的留言薄功能
- 使用无序列表ul实现多级菜单
- 第一代GCN: Spectral Networks and Locally Connected Networks on Graphs
热门文章
- MySQL show binlog events命令查看binlog日志内容
- 前端获取div里面的标签_web前端教程JavaScript学习笔记DOM
- 倍数应用题后面需要带单位吗_数学应用题解答思路解析(附例题)
- php浏览器头部获取,如何获取PHP以显示从浏览器收到的标头?
- kaggle房价预测特征意思_Kaggle实战-波士顿房价预测
- input 不显示边框_不需要使用JavaScript
- 无法启动程序 计算机丢失QT,Win7系统打开程序提示计算机中丢失qt5core.dll如何解决...
- android adb 传文件大小,使用adb在电脑和手机间传文件
- 子元素是字典列表转成字典
- mask属性是css3的吗_CSS3 mask 遮罩的具体使用方法