asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(六)—— 简单过滤器的使用
2024-09-28 11:24:18
有些同学喜欢在测试或运行项目时,直接跳转页面到Home/Index下,但本次项目直接输入Home/Index则会报错
因为home/index中有个user.name参数,如果启动项目后直接跳转到home/index页后,则会报错。下面,我们来学习利用过滤器,直接输入home/index后让页面跳转到登录页面。(注意:如果当前你在测试时,已经登录跳转到主页后,在注销之前再刷新,输入home/index地址时,并不会报错,因为user.name参数是保存在session中,而我们在注销的操作中才把session内容清空)
好,下面来构造过滤器。
1. 先在Controllers文件夹下新建名为Filter的文件夹,用来放过滤器的代码,再添加一个名为CheckLoginFilter.cs的类文件
2. 在CheckLoginFilter.cs中添加如下代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace UserManager.Web.Controllers.Filter
{
public class CheckLoginFilter : FilterAttribute, IActionFilter
{
public void OnActionExecuted(ActionExecutedContext filterContext)
{
if (HttpContext.Current.Session["user"] == null)
{
filterContext.HttpContext.Response.Write("-1");
}
} public void OnActionExecuting(ActionExecutingContext filterContext)
{
if (HttpContext.Current.Session["user"] == null)
{
filterContext.Result = new RedirectResult("/Account/Index");
}
}
}
}
3. 在控制器/HomeControllers.cs文件中添加过滤器:
显示结果:当运行项目,地址栏输入Home/index时,马上跳转到Account/index的登录界面。
最新文章
- kali 初始化
- 初探JavaScript(二)——JS如何动态操控HTML
- Laravel 5.1 文档攻略 —— Eloquent:模型对象序列化
- 【BZOJ】1108: [POI2007]天然气管道Gaz
- Latest node.js &; npm installation on Ubuntu 12.04
- Web服务器amp搭建
- 【正则】精通JS正则表达式,没消化 信息量太大,好文
- DOS批处理命令-CMD命令
- android 05 桢布局:FrameLayout 网格布据 GridLayout
- 浅谈python 手机crash和app crash循环执行问题
- ThinkPHP中使用聚合查询去重求和
- Vue渐进式JavaScript 框架
- wdcp lanmp 安装+搭建网站+安全狗安装 详细实用
- <;转载>;ford-fulkerson算法
- electron安装+运行+打包成桌面应用+打包成安装文件+开机自启动
- xamarin 安卓输出中文错误 乱码解决
- 转载:ArcEngine 唯一值查询
- 【代码审计】EasySNS_V1.6 前台任意文件下载漏洞分析
- gj11 多线程、多进程和线程池编程
- web 前端规范实例
热门文章
- mysql 文本搜索
- hdu1269(有向图强连通分量)
- Codeforces Round #209 (Div. 2) D. Pair of Numbers (模拟)
- [CF460E]Roland and Rose
- 【bzoj1604】【[Usaco2008 Open]Cow Neighborhoods】简单的谈谈曼哈顿距离
- 微服务之SpringCloud实战(一):SpringCloud简介
- 【R笔记】使用R语言进行异常检测
- MySQL查询时区分大小写(转)
- iOS 中json解析数据出现中文乱码的问题
- ubuntu登录黑屏“failed to start session”, gdm+kdm+lightdm