1:ASP.NET MVC5+EF6+EasyUI 后台管理系统(1)-WebApi与Unity注入 使用Unity是为了使用咱们后台的BLL和DAL层html
2:ASP.NET MVC5+EF6+EasyUI 后台管理系统(2)-WebApi与Unity注入-配置文件ide
3:ASP.NET MVC5+EF6+EasyUI 后台管理系统(3)-MVC WebApi 用户验证 (1)微服务
4:ASP.NET MVC5+EF6+EasyUI 后台管理系统(4)-MVC WebApi 用户验证 (2)post
以往咱们讲了WebApi的基础验证,可是有新手常常来问我使用的方式测试
此次咱们来分析一下代码的用法,以及调试的方式url
WebApi在一些场景咱们会用到,好比:spa
- 1.对接各类客户端(移动设备)
- 2.构建常见的http微服务
- 3.开放数据
- 4.单点登录 等...
本文主要演示几点:主要也是对以往的回顾整理3d
咱们新建的WebApi集成了微软自带的HelpPage,即Api的文档,在咱们编写好接口以后会自动生成一份文档调试
设置项目属性的输出XML文档code
2.打开Areas-->HelpPage-->App_Start-->HelpPageConfig.cs
public static void Register(HttpConfiguration config) { //// Uncomment the following to use the documentation from XML documentation file. config.SetDocumentationProvider(new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/bin/Apps.WebApi.XML")));
设置Register方法就行,运行地址localhost:1593/help获得以下结果
从图中能够看出,每个控制器的接口都会列出来,并根据注释和参数生成文档,全自动
点击接口能够看到参数和请求方式
下载地址:https://www.getpostman.com/
Pastman很是易用,咱们下面就拿登录接口来测试
打开Postman,新建一个请求
OK,咱们已经得到token!注意,新建请求的时候,要设置GET,POST
以前的文章,咱们是经过令牌的方式+接口权限来访问接口数据的
打开SupperFilter.cs过滤器代码
//url获取token
var content = actionContext.Request.Properties[ConfigPara.MS_HttpContext] as HttpContextBase;
var token = content.Request.QueryString[ConfigPara.Token]; if (!string.IsNullOrEmpty(token)) { //解密用户ticket,并校验用户名密码是否匹配 //读取请求上下文中的Controller,Action,Id var routes = new RouteCollection(); RouteConfig.RegisterRoutes(routes); RouteData routeData = routes.GetRouteData(content); //取出区域的控制器Action,id string controller = actionContext.ActionDescriptor.ControllerDescriptor.ControllerName; string action = actionContext.ActionDescriptor.ActionName; //URL路径 string filePath = HttpContext.Current.Request.FilePath; //判断token是否有效 if (!LoginUserManage.ValidateTicket(token)) { HandleUnauthorizedRequest(actionContext); } //判断是否角色组受权(若是不须要使用角色组受权能够注释掉这个方法,这样就是登陆用户均可以访问全部接口) if (!ValiddatePermission(token, controller, action, filePath)) { HandleUnauthorizedRequest(actionContext); } //已经登陆,有权限 base.IsAuthorized(actionContext);
过滤器中会读取到用户传过来的token并进行2个逻辑验证
1.验证token是否有效
2.验证接口有没有权限(经过后台分配权限来获取Action)这个操做跟咱们受权界面是同样的
(注:若是注释掉即全部登录用户均可以访问全部接口,不受控制,主要看业务场景吧)
看到SysSampleController类,这个类和普通MVC里面的样例的接口其实没有什么区别,BLL后的全部都是通用的,因此逻辑就不须要从新写了!按照第二点的得到token,配置到Postman能够得到数据
谢谢,从源码直接能够看出,和本身测试或者本身配置一遍,不失是一种体验