当前位置: 首页 > news >正文

山东大禹建设集团网站站长之家0

山东大禹建设集团网站,站长之家0,图文分销系统开发,如何做登陆界面的网站前言 我们知道 ASP.NET Web API 过滤器#xff0c;也是属于消息处理机制中的一部分。正因如此#xff0c;我们经常使用它来完成对请求的授权验证、参数验证#xff0c;以及请求的 Log 记录#xff0c;程序异常捕获等。 1. 常用的四大过滤器 ASP.NET Web API 2 中的所有…Ø  前言 我们知道 ASP.NET Web API 过滤器也是属于消息处理机制中的一部分。正因如此我们经常使用它来完成对请求的授权验证、参数验证以及请求的 Log 记录程序异常捕获等。   1.   常用的四大过滤器 Ø  ASP.NET Web API 2 中的所有过滤器位于 System.Web.Http.dll 中的 System.Web.Http.Filters 命名空间中继承关系如下 1.   AuthenticationFilter身份证验证过滤器必须实现 IAuthenticationFilter 接口。微软推出了一套身份验证组件ASP.NET Identity就是采用了该过滤实现该组件位于 System.Web.Http.Owin.dll 程序集主要使用 System.Web.Http.HostAuthenticationFilter 过滤器可参考https://www.cnblogs.com/yidianfeng/p/7765984.html 2.   AuthorizationFilter授权过滤器必须继承于 AuthorizationFilterAttribute 类或实现 IAuthorizationFilter 接口。 3.   ActionFilter动作过滤器必须继承于 ActionFilterAttribute 类或者实现 IActionFilter 接口。 4.   ExceptionFilter异常过滤器必须继承于 ExceptionFilterAttribute 类或者实现 IExceptionFilter 接口。   Ø  注意因为 Web API 与 MVC 中很多过滤器名称都相同但过滤器位于的程序集和命名空间是不同的。MVC 中的过滤器位于 System.Web.Mvc.dll 中的 System.Web.Mvc 命名空间这不能搞混了   Ø  首先我们来看下过滤器的执行顺序 1)   图中描述了4种过滤器的执行顺序而每个执行过程中发生异常都会被异常过滤器捕获。 2)   每当一个请求“进来”时可能存在的三种响应结果401,无访问权限500,请求发生异常200,请求成功。   Ø  过滤器的用法 1)   创建过滤器 1.   AuthenticationFilter身份验证过滤器 它是最先执行的过滤器一般用于对访问者的身份认证等。 /// summary /// 身份验证过滤器特性。 /// /summary public class CustomAuthenticationFilterAttribute     : System.Web.Http.Filters.FilterAttribute, System.Web.Http.Filters.IAuthenticationFilter {     public System.Threading.Tasks.Task AuthenticateAsync(System.Web.Http.Filters.HttpAuthenticationContext context, System.Threading.CancellationToken cancellationToken)     {         //这里完成身份验证...         return Task.FromResult(0);     }       public System.Threading.Tasks.Task ChallengeAsync(System.Web.Http.Filters.HttpAuthenticationChallengeContext context, System.Threading.CancellationToken cancellationToken)     {         return Task.FromResult(0);     } }   2.   AuthorizationFilter授权过滤器 授权过滤器通常用于控制接口访问权限只有当访问权限满足时才允许访问程序中的接口。用于提高程序的安全性防止程序被恶意篡改。通常可以使用 Basic 认证、签名认证等。 /// summary /// 授权过滤器特性。 /// /summary public class CustomAuthorizationFilterAttribute : System.Web.Http.Filters.AuthorizationFilterAttribute {     /// summary     /// 在过程请求授权时调用。     /// /summary     /// param nameactionContext操作上下文它封装有关使用 System.Web.Http.Filters.AuthorizationFilterAttribute 的信息。/param     public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)     {         //这里完成请求权限的控制...     } }   3.   ActionFilter动作过滤器 动作过滤器中有两个方法一个是 OnActionExecuting()在调用 Action() 方法之前执行另一个是 OnActionExecuted()在调用 Action() 方法之后执行。 /// summary /// 动作过滤器特性。 /// /summary public class CustomActionFilterAttribute : System.Web.Http.Filters.ActionFilterAttribute {     /// summary     /// 在调用操作方法之前发生。     /// /summary     /// param nameactionContext操作上下文。/param     public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)     {         //这里完成请求参数的验证...     }       /// summary     /// 在调用操作方法之后发生。     /// /summary     /// param nameactionExecutedContext操作执行的上下文。/param     public override void OnActionExecuted(System.Web.Http.Filters.HttpActionExecutedContext actionExecutedContext)     {         //这里完成请求日志的记录...     } } 1.   OnActionExecuting () 方法 通常可以在该方法中完成对接口参数的效验。 2.   OnActionExecuted () 方法 一般可以用于记录调用接口的 log。   4.   ExceptionFilter异常过滤器 异常过滤器中一个 OnException() 方法当程序发生异常时将被执行。通常可以用于监控程序异常记录异常日志。 /// summary /// 自定义异常过滤器特性。 /// /summary public class CustomExceptionFilterAttribute : System.Web.Http.Filters.ExceptionFilterAttribute {     /// summary     /// 异常过滤器特性。     /// /summary     /// param nameactionExecutedContext操作的上下文。/param     public override void OnException(System.Web.Http.Filters.HttpActionExecutedContext actionExecutedContext)     {         //当程序发生异常时执行的代码...         actionExecutedContext.Response actionExecutedContext.Request.CreateResponse(             System.Net.HttpStatusCode.InternalServerError,             string.Format(异常【{0}】已被捕获, actionExecutedContext.Exception.Message));     } }   2)   注册过滤器 1.   注册全局过滤器 在 WebApiConfig 类的 Register() 方法中注册例如 config.Filters.Add(new WebAPI2.Filter.Filters.CustomExceptionFilterAttribute()); config.Filters.Add(new WebAPI2.Filter.Filters.CustomActionFilterAttribute());            config.Filters.Add(new WebAPI2.Filter.Filters.CustomAuthorizationFilterAttribute()); config.Filters.Add(new WebAPI2.Filter.Filters.CustomAuthenticationFilterAttribute());   通常异常过滤、动作过滤器都是定义为全局过滤器。   2.   定义 Controller 或 Action 过滤器 我们需要为指定的 Controller 或 Action 单独设置过滤器时也可以这样定义 [WebAPI2.Filter.Filters.CustomActionFilter] [WebAPI2.Filter.Filters.CustomAuthorizationFilter] [RoutePrefix(api/values)] public class ValuesController : ApiController { } 或者 [WebAPI2.Filter.Filters.CustomAuthorizationFilter] public HttpResponseMessage Get(HttpRequestMessage request, int id) { return request.CreateResponsestring(HttpStatusCode.OK, Get Action 方法执行id值为 id); }   Ø  注意过滤器不能在 FilterConfig 中的 RegisterGlobalFilters() 去注册因为这里是注册 MVC 过滤器的。转载于:https://www.cnblogs.com/abeam/p/8688838.html
http://www.zqtcl.cn/news/452573/

相关文章:

  • 做网站卖什么建设银信用卡网站首页
  • 大连市城乡建设档案馆网站网上竞价采购网站建设
  • 国际物流公司网站建设浏览器正能量网站免费图片
  • 河南做外贸网站的公司怎么做家庭网站
  • 知名营销类网站互联网软件开发是什么工作
  • 做网站前新闻录入网站模板
  • 网站域名做跳转要收费吗科技信息期刊
  • 登别的网站应怎么做网站推广广告词大全集
  • 漯河城乡建设管理局网站wordpress icon class
  • 买空间哪个网站好广州多少网络科技有限公司
  • 网站的网络推广方案营销型网站建设论文
  • 苏州做网站便宜的公司哪家好门店管理系统app
  • 学校多语言网站建设网络维护网站建设培训
  • Wordpress外贸网站搭建公司建站系统的应用场景
  • 网站推广网络推广方wordpress汉语公益
  • 长沙做网站的公司有哪些宁波奉化建设局网站
  • 温岭专业自适应网站建设承德招聘信息网
  • 做公司网站的模板下载wordpress e
  • 网站建设基本知识wordpress 没有小工具
  • 北京完美建设有限公司网站酒店加盟
  • 山东网络推广网站德州市建设局质监站网站
  • api模式网站开发网站打开后显示建设中
  • 排名好的郑州网站建设免费营销培训
  • 美橙互联网站网站主要应用
  • 淘宝客网站做appuv推广平台
  • 网站公司可以做英文网吗图片加字制作免费
  • 海口个人建站模板精品课程云网站建设
  • 阿里网站空间莱芜新闻视频回放
  • 高清网站建设的好处wordpress 房产模板
  • 在建工程查询网站怎么自己开发网站