当前位置: 首页 >服务端 > ASP.NET Web API 全局权限和全局异常处理

ASP.NET Web API 全局权限和全局异常处理

在开发中,我使用json格式序列化,所以将默认的xml序列化移除

public static class WebApiConfig{public static void Register(HttpConfiguration config){// ...var json = config.Formatters.JsonFormatter;// 解决json序列化时的循环引用问题json.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;// 移除XML序列化器config.Formatters.Remove(config.Formatters.XmlFormatter);}}

全局权限验证过滤器

新建一个类继承自AuthorizationFilterAttribute,它有一个虚方法OnAuthorization,在权限验证的时候调用,重写这个方法来验证权限。

 

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]public class WebApiAuthAttribute : AuthorizationFilterAttribute{public override void OnAuthorization(HttpActionContext actionContext){// 这是一个基本例子,使用的ASP.NET Forms 身份验证var context = HttpContext.Current;if (context.User.Identity.IsAuthenticated == false){PreUnauthorized(actionContext);retu;}}private void PreUnauthorized(HttpActionContext actionContext) {// 如果用户没有登录,则返回一个通用的错误ModelactionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK,new AjaxModel{StatusCode = AjaxStatusCode.Unauthorized,Message = "该操作需要用户登录"});}}

最后只需要在WebApiConfig里面添加一个过滤器

config.Filters.Add(new WebApiAuthAttribute());

现在每一个请求都会验证权限

 

全局异常过滤器

新建一个类继承自ExceptionFilterAttribute,同样有一个虚方法OnException,重写这个方法来处理异常。

public override void OnException(HttpActionExecutedContext actionExecutedContext){Logger.Error(actionExecutedContext.Exception);actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(HttpStatusCode.OK,new AjaxModel{StatusCode = AjaxStatusCode.IntealServerError,Message = actionExecutedContext.Exception.Message});}

最后只需要在WebApiConfig里面添加一个过滤器

config.Filters.Add(new WebApiErrorHandleAttribute());

 

作者:学亮
来源链接:https://www.cnblogs.com/yxlblogs/p/3639409.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/112907.html

标签:异常处理
分享给朋友:

“ASP.NET Web API 全局权限和全局异常处理” 的相关文章

划分子网和构造超网的学习 2022年05月17日 13:57:19
计算机组成原理考试复习 2022年05月18日 15:56:51
linux yum命令详解 2022年05月19日 19:54:29
常用日志框架介绍 2022年05月19日 20:04:06
ubuntu 20.04修改数据源配置 2022年05月20日 10:09:56
Python 散列表查询 2022年05月20日 21:28:09
素数的判断,以及素数的遍历 2022年05月21日 11:41:39