MVC拦截
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Web;
5using System.Web.Mvc;
6using System.Web.Mvc.Ajax;
8namespace MVCDemo.Controllers.Filters
9{
public class LoggerFilter : FilterAttribute, IActionFilter
{
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.Controller.ViewData["ExecutingLogger"] = "正要添加公告,已以写入日志!时间:" + DateTime.Now;
}
17 void IActionFilter.OnActionExecuted(ActionExecutedContext filterContext)
{
filterContext.Controller.ViewData["ExecutedLogger"] = "公告添加完成,已以写入日志!时间:" + DateTime.Now;
}
}
22}
复制代码 1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Web;
5using System.Web.Mvc;
6using System.Web.Mvc.Ajax;
7
8namespace MVCDemo.Controllers.Filters
9{
10 public class ExceptionFilter : FilterAttribute,IExceptionFilter
11 {
12 void IExceptionFilter.OnException(ExceptionContext filterContext)
13 {
14 filterContext.Controller.ViewData["ErrorMessage"] = filterContext.Exception.Message;
15 filterContext.Result = new ViewResult()
16 {
17 ViewName = "Error",
18 ViewData = filterContext.Controller.ViewData,
19 };
20 filterContext.ExceptionHandled = true;
21 }
22 }
23}
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Web;
5using System.Web.Mvc;
6using System.Web.Mvc.Ajax;
7using MVCDemo.Models;
8using MVCDemo.Models.Interfaces;
9using MVCDemo.Models.Entities;
10using MVCDemo.Controllers.Filters;
12namespace MVCDemo.Controllers
13{
public class AnnounceController : Controller
{
public ActionResult Release()
{
ICategoryService cServ = ServiceBuilder.BuildCategoryService();
List<CategoryInfo> categories = cServ.GetAll();
ViewData["Categories"] = new SelectList(categories, "ID", "Name");
return View("Release");
}
24 [LoggerFilter()]
[ExceptionFilter()]
public ActionResult DoRelease()
{
AnnounceInfo announce = new AnnounceInfo()
{
ID = 1,
Title = Request.Form["Title"],
Category = Int32.Parse(Request.Form["Category"]),
Content = Request.Form["Content"],
};
36 IAnnounceService aServ = ServiceBuilder.BuildAnnounceService();
aServ.Release(announce);
39 ViewData["Announce"] = announce;
41 System.Threading.Thread.Sleep(2000);
ViewData["Time"] = DateTime.Now;
System.Threading.Thread.Sleep(2000);
45 return View("ReleaseSucceed");
}
}
48}
-----------------------------------------------
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Mvc; namespace WebApplication1.App_Start
{
public class ControllerValidateAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext actionContext)
{
var conLoginName = ConfigurationManager.AppSettings["LoginName"].ToString();
try
{
string loginName = actionContext.HttpContext.Request.Url.AbsolutePath.ToLower().TrimEnd('/').ToString();
if (loginName != conLoginName)
{
var conKey = ConfigurationManager.AppSettings["InfoAPIKey"].ToString();
var token = actionContext.HttpContext.Request.Headers.Get("token").First().ToString();
if (token == conKey)
{
//actionContext.Result = new RedirectToRouteResult(new System.Web.Routing.RouteValueDictionary(new { Controller = "", action = "" }));
}
else
{
actionContext.Result = new ContentResult { Content = @"The illegal user access" };
}
}
}
catch (Exception ex)
{
actionContext.HttpContext.Response.Write(ex);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Http.Controllers;
using System.Web.Http.Filters; namespace WebApplication1.App_Start
{
public class ApiControllerValidateAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
var conLoginName = ConfigurationManager.AppSettings["LoginName"].ToString();
try
{
string loginName = actionContext.Request.RequestUri.AbsolutePath.ToLower().TrimEnd('/').ToString();
if (loginName != conLoginName)
{
var conKey = ConfigurationManager.AppSettings["InfoAPIKey"].ToString();
var token = actionContext.Request.Headers.GetValues("token").First().ToString();
if (token == conKey)
{
//成功
}
else
{
//失败
actionContext.Response = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Forbidden);
}
}
}
catch (Exception ex)
{
}
base.OnActionExecuting(actionContext);
}
}
}
需要调用的 Controller类上加上验证类名
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebApplication1.App_Start;
namespace WebApplication1.Controllers
{
[ControllerValidate]
public class Test1Controller : Controller
{
//
// GET: /Test1/
public ActionResult Index()
{
return View();
}
}
}
using WebApplication1.App_Start;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace MvcApplication1.Controllers
{
[ApiControllerValidate]
public class TestController : ApiController
{
[HttpGet]
public dynamic Index()
{
return Request.CreateResponse(HttpStatusCode.OK, new
{
Success = true,
Message = ""
});
}
}
}
MVC拦截的更多相关文章
- spring MVC拦截器01
spring MVC拦截 作用:身份校验,权限检查,防止非法訪问. 场景:一个bbs系统,用户没有登录就无法发帖或者删除评论; 一个博客系统,没有登录就无法发表博文,无法添加分类,无法删除博文. sp ...
- mvc拦截器
在ASP.NET MVC中,有三种拦截器:Action拦截器.Result拦截器和Exception拦截器.这里说的是第一种和第三种.其实所谓的ASP.NET MVC拦截器,也没什么神秘的,就是一个普 ...
- SSM(spring mvc+spring+mybatis)学习路径——2-2、spring MVC拦截器
目录 2-2 Spring MVC拦截器 第一章 概述 第二章 Spring mvc拦截器的实现 2-1 拦截器的工作原理 2-2 拦截器的实现 2-3 拦截器的方法介绍 2-4 多个拦截器应用 2- ...
- spring mvc 拦截器的使用
Spring MVC 拦截器的使用 拦截器简介 Spring MVC 中的拦截器(Interceptor)类似于 Servler 中的过滤器(Filter).用于对处理器进行预处理和后处理.常用于日志 ...
- 【Java Web开发学习】Spring MVC 拦截器HandlerInterceptor
[Java Web开发学习]Spring MVC 拦截器HandlerInterceptor 转载:https://www.cnblogs.com/yangchongxing/p/9324119.ht ...
- Spring Boot 2.X(九):Spring MVC - 拦截器(Interceptor)
拦截器 1.简介 Spring MVC 中的拦截器(Interceptor)类似于 Servlet 开发中的过滤器 Filter,它主要用于拦截用户请求并作相应的处理,它也是 AOP 编程思想的体现, ...
- spring MVC 拦截有几种实现方式
spring MVC 拦截有几种实现方式 实现HandelInterceptor接口方式 继承HandelInterceptor 的方式.一般有这两种方式 spring 如何走单元测式 ...
- Spring MVC拦截器配置
Spring MVC拦截器配置 (1)自定义拦截器 package learnspringboot.xiao.other; import org.springframework.web.servlet ...
- 写的太细了!Spring MVC拦截器的应用,建议收藏再看!
Spring MVC拦截器 拦截器是Spring MVC中强大的控件,它可以在进入处理器之前做一些操作,或者在处理器完成后进行操作,甚至是在渲染视图后进行操作. 拦截器概述 对于任何优秀的MVC框架, ...
- 对于Spring MVC 拦截器的一些了解
Spring MVC 拦截器的执行顺序 应用场景 假设请求 localhost:8080/ 则要求直接重定向到 localhost:8080/login ; 定义拦截器顺序 permission lo ...
随机推荐
- org.json package
JSON is a light-weight,language independent,data interchange format. org.json package implement JSON ...
- UE4 Keynote 1
[UE4 Keynote 1] 1.U3D中的Project,在UE4中叫 ContentBrowser,中文名叫“内容浏览器” 最多可以打开4个ContentBrowser,通过 “窗口” -> ...
- PAT 乙级 1039.到底买不买 C++/Java
题目来源 小红想买些珠子做一串自己喜欢的珠串.卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖.于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少 ...
- Flutter gradle采坑
前些日子google推出Flutter1.9版本支持web果断升级 在运行flutter时发现错误,错误提示为 Launching lib/main.dart on Android SDK built ...
- texlive相关问题
1.The font "WenQuanYi Micro Hei" cannot be found. 解决方法:下载WenQuanYi Micro Hei的字体(以ttf结尾),粘贴 ...
- LOJ 3120: 洛谷 P5401: 「CTS2019 | CTSC2019」珍珠
题目传送门:LOJ #3120. 题意简述: 称一个长度为 \(n\),元素取值为 \([1,D]\) 的整数序列是合法的,当且仅当其中能够选出至少 \(m\) 对相同元素(不能重复选出元素). 问合 ...
- 编译3516cv500 osdrv失败解决
configure: WARNING: cannot find uuid library required for mkfs.ubifsconfigure: mtd-utils can optiona ...
- 201871010128-杨丽霞《面向对象程序设计(java)》第四周学习总结
201871010128-杨丽霞<面向对象程序设计(java)>第四周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh 这个 ...
- NGUI里的sprite和label有白色的边框
问题描述:NGUI里的sprite和label有白色的边框,而原图一切正常 如图: 解决方案: 给Sprite 边缘左右更增加1,这样拉伸的时候就忽略了左右1的位置,图片就不会显示白色边框了
- 02-docker入门-docker常用的一些命令
在这里,有必要先对ducker在做一次介绍 ducker 是一个容器. 容器内部运行的是一个系统. 系统内部安装好了要调试 / 发布的工程,然后这个系统被打包成了一个镜像. ducker 就是这个镜像 ...