有些同学喜欢在测试或运行项目时,直接跳转页面到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的登录界面。

最新文章

  1. kali 初始化
  2. 初探JavaScript(二)——JS如何动态操控HTML
  3. Laravel 5.1 文档攻略 —— Eloquent:模型对象序列化
  4. 【BZOJ】1108: [POI2007]天然气管道Gaz
  5. Latest node.js & npm installation on Ubuntu 12.04
  6. Web服务器amp搭建
  7. 【正则】精通JS正则表达式,没消化 信息量太大,好文
  8. DOS批处理命令-CMD命令
  9. android 05 桢布局:FrameLayout 网格布据 GridLayout
  10. 浅谈python 手机crash和app crash循环执行问题
  11. ThinkPHP中使用聚合查询去重求和
  12. Vue渐进式JavaScript 框架
  13. wdcp lanmp 安装+搭建网站+安全狗安装 详细实用
  14. <转载>ford-fulkerson算法
  15. electron安装+运行+打包成桌面应用+打包成安装文件+开机自启动
  16. xamarin 安卓输出中文错误 乱码解决
  17. 转载:ArcEngine 唯一值查询
  18. 【代码审计】EasySNS_V1.6 前台任意文件下载漏洞分析
  19. gj11 多线程、多进程和线程池编程
  20. web 前端规范实例

热门文章

  1. mysql 文本搜索
  2. hdu1269(有向图强连通分量)
  3. Codeforces Round #209 (Div. 2) D. Pair of Numbers (模拟)
  4. [CF460E]Roland and Rose
  5. 【bzoj1604】【[Usaco2008 Open]Cow Neighborhoods】简单的谈谈曼哈顿距离
  6. 微服务之SpringCloud实战(一):SpringCloud简介
  7. 【R笔记】使用R语言进行异常检测
  8. MySQL查询时区分大小写(转)
  9. iOS 中json解析数据出现中文乱码的问题
  10. ubuntu登录黑屏“failed to start session”, gdm+kdm+lightdm