EasyUISNF神速支付平台MVC-EasyUI3.9之-WebApi身份验证难点消除方案

在大家的完全bs框架个中前端选择的是MVC+WebApi的处理格局。WebApi使用起来着实很方便但也会有新的枝叶,就是身份验证。

一经没有启用身份认证,那么任何匿名用户要是精通了大家服务的url,就能随随便便走访大家的服务接口,从而访问或涂改数据库。

壹 、大家不加身份认证,匿名用户平素通过url就能访问我们的数码接口,最后会发生哪些事,我们可以随意畅想。

② 、扩张了地点表明之后,唯有带了我们走访票据的乞求才能访问大家的接口。不然大家一向通过url访问,会回来401

 EasyUI 1如若是Html5或App客户端请求大家的WebApi的话,须求先调用一个记名请求并赶回OpenId和用户音讯:

 EasyUI 2

其后我们更创办1个过滤WebApi的央求筛选,拦截住全部WebApi请求验证请求参数,假若是登录用户能够实行走访,假诺不是一向回到401

  /// <summary>
    /// 重写实现
    /// </summary>
    public class WebApiAuthorize : AuthorizeAttribute
    {
        //重写基类的验证方式,加入我们自定义的Ticket验证
        public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
        {
            //防止谷歌浏览器发出预请求。即一个请求被提交两次
            if (actionContext.Request.Method == HttpMethod.Options)
            {
                actionContext.Response = actionContext.Request.CreateResponse(System.Net.HttpStatusCode.Accepted);
                return;
            }
            //url获取token
            var content = actionContext.Request.Properties["MS_HttpContext"] as HttpContextBase;

            var openId = content.Request.QueryString["OpenId"];
            string orgId = content.Request.QueryString["OrgId"];
            string platformId = content.Request.QueryString["PlatformId"];

            if (!string.IsNullOrEmpty(openId))//token
            {
                //解密用户ticket,并校验用户名密码是否匹配

                //读取请求上下文中的Controller,Action,Id
                //var routes = new RouteCollection();
                //RouteConfig.RegisterRoutes(routes);
                //RouteData routeData = routes.GetRouteData(content);
                ////content.Request.RequestContext.RouteData.Values
                //取出区域的控制器Action,id 可以扩展后续按用户判断是否有哪个接口权限
                //string controller = actionContext.ActionDescriptor.ControllerDescriptor.ControllerName;
                //string action = actionContext.ActionDescriptor.ActionName;
                //URL路径
                //string filePath = HttpContext.Current.Request.FilePath;

                BaseUserInfo userInfo = SNF.Business.Utilities.LogOn(openId); ;
                if (userInfo != null)
                {
                    HttpContext.Current.Session["WebApiUserInfo"] = userInfo; 
                    //已经登录,有权限,且没有单机登录限制
                    base.IsAuthorized(actionContext);
                }
                else
                {
                    base.HandleUnauthorizedRequest(actionContext);//401
                }
            }
            //如果取不到身份验证信息,并且不允许匿名访问,则返回未验证401
            else
            {
                base.OnAuthorization(actionContext);
            }
        }
        protected override bool IsAuthorized(HttpActionContext filterContext)
        {
            if (!string.IsNullOrEmpty(filterContext.Request.RequestUri.LocalPath)
                && filterContext.Request.RequestUri.LocalPath.StartsWith("/api/WebApi/")
                )
            {
                return true;

            }
            else
            {
                return base.IsAuthorized(filterContext);
            }
        }

比方请求通过后,会跳转到进来。再用一行代码获取登录职员音信。GetRequestUserInfo(request)

EasyUI 3

 

EasyUI 4

 ——————————————————————————————————————————————————————————————————————-

作者: 王金斗
出处: http://www.cnblogs.com/spring_wang/
Email: spring_best@yeah.net
QQ:903639067 
QQ群:322581894

 那么些体系教程文档,欢迎转发:

SNF快捷支付平台WinForm-CS甘特图http://www.cnblogs.com/spring_wang/p/7418423.html

SNF快捷支付平台MVC-审核流,审核完结后会给下二个审核人发邮件,下二个审核人可以不记名系统,在邮件里进行审核处理http://www.cnblogs.com/spring_wang/p/7418402.html

SNF火速支付平台MVC-名片管理(实际名片样式) http://www.cnblogs.com/spring_wang/p/7416540.html

SNF连忙支付平台MVC-表格单元格合并组件http://www.cnblogs.com/spring_wang/p/7416368.html

SNF连忙支付平台MVC-单据状态水印http://www.cnblogs.com/spring_wang/p/7416349.html

SNF迅速支付平台MVC-瀑布式分页组件http://www.cnblogs.com/spring_wang/p/7411116.html

SNF快捷支付平台MVC-高级查询组件http://www.cnblogs.com/spring_wang/p/7411113.html

SNF快捷支付平台MVC-自由排序组件http://www.cnblogs.com/spring_wang/p/7411090.html

SNF飞速支付平台MVC-各样级联绑定格局,演示样例程序(包涵表单和表格控件)http://www.cnblogs.com/spring_wang/p/7405371.html

SNF神速支付平台MVC-集成了百度开源项目echarshttp://www.cnblogs.com/spring_wang/p/7405171.html

SNF快速支付平台WinForm-平板拍照及扫描二维码作用http://www.cnblogs.com/spring_wang/p/7404600.html

SNF火速支付平台WinForm平整引擎全体介绍及应用http://www.cnblogs.com/spring\_wang/p/7404182.html

SNF快捷支付平台WinForm-Grid表格控件大全http://www.cnblogs.com/spring_wang/p/7403881.html

SNF快捷支付平台WinForm-表单验证控件-通用http://www.cnblogs.com/spring_wang/p/7403750.html

SNF.CodeGenerator-升级生成BS页面代码-帮助视图-数据库配置-连忙开发者的利器http://www.cnblogs.com/spring_wang/p/7402612.html

SNF快捷支付平台WinForm-审核流使用格局样例http://www.cnblogs.com/spring_wang/p/7374176.html

SNF快速支付平台WinForm-EasyQuery计算分析-效果-分外牛逼的报表查询工具http://www.cnblogs.com/spring_wang/p/7366059.html

SNF急忙支付平台MVC-Grid++集成打字与印刷http://www.cnblogs.com/spring_wang/p/7365567.html

SNF火速支付平台MVC-富文本控件集成了百度开源项目editorhttp://www.cnblogs.com/spring_wang/p/7365265.html

C#按回车Enter使输入大旨自动跳到下一个TextBox的措施收集http://www.cnblogs.com/spring_wang/p/7216538.html

有关系统前端开发的那个事http://www.cnblogs.com/spring_wang/p/7092721.html

WebApi和MVC-controller层接收的json字符串的取值方法和调用后台服务格局http://www.cnblogs.com/spring_wang/p/6740314.html

SNF连忙支付平台–规则引擎在程序个中怎么着调用http://www.cnblogs.com/spring_wang/p/6740490.html

SNF连忙支付平台–规则引擎介绍和行使文书档案http://www.cnblogs.com/spring_wang/p/6740445.html

SNF快速支付平台MVC-EasyUI3.9之-DataGrid表格控件怎样扩展右键菜单http://www.cnblogs.com/spring_wang/p/6740338.html

SNF快捷支付平台–多协会+多平台+多系统处理方案http://www.cnblogs.com/spring_wang/p/6734654.html

SNF急迅支付平台MVC-EasyUI3.9之-Session过期处理和页面请求筛选http://www.cnblogs.com/spring_wang/p/6733975.html

SNF快捷支付平台MVC-EasyUI3.9之-WebApi身份验证难题化解方案http://www.cnblogs.com/spring_wang/p/6733814.html

SNF急忙支付平台MVC-EasyUI3.9之-WebApi跨域处理方案http://www.cnblogs.com/spring_wang/p/6733659.html

SNF飞速支付平台MVC-EasyUI3.9之-ueditor富文本编辑在 asp.net
MVC下利用手续
http://www.cnblogs.com/spring_wang/p/6710351.html

SNF开发平台WinForm之十五-时间轴控件使用-http://www.cnblogs.com/spring\_wang/p/6285393.html

SNF开发平台WinForm之十四-站内发送系统新闻http://www.cnblogs.com/spring\_wang/p/6140031.html

SNF开发平台WinForm之十三-单独从服务器上收获PDF文件举办展示http://www.cnblogs.com/spring_wang/p/6140025.html

SNF开发平台WinForm之十二-发送手提式有线电话机短信作用调用http://www.cnblogs.com/spring_wang/p/6139829.html

SNF开发平台WinForm之十一-程序打包http://www.cnblogs.com/spring_wang/p/6139827.html

SNF开发平台WinForm之十-Excel导入http://www.cnblogs.com/spring_wang/p/6128604.html

SNF开发平台WinForm之九-代码生成器使用表达http://www.cnblogs.com/spring_wang/p/6128595.html

SNF开发平台WinForm之八-自动升级程序布置使用验证http://www.cnblogs.com/spring_wang/p/6128570.html

SNF开发平台WinForm之七-单据打字与印刷和应用表达http://www.cnblogs.com/spring_wang/p/6126016.html

SNF开发平台WinForm之六-上传下载组件使用http://www.cnblogs.com/spring\_wang/p/6125929.html

SNF开发平台WinForm之五-高级查询利用表明-http://www.cnblogs.com/spring\_wang/p/6116640.html

SNF开发平台WinForm之四-开发-主细表管理页面-http://www.cnblogs.com/spring\_wang/p/6116626.html

SNF开发平台WinForm之三-开发-单表选拔控件创制-http://www.cnblogs.com/spring\_wang/p/6116592.html

SNF开发平台WinForm之二-开发-单表表单管理页面-http://www.cnblogs.com/spring\_wang/p/6116572.html

SNF开发平台WinForm之一-开发-单表表格编辑管理页面-http://www.cnblogs.com/spring\_wang/p/6116523.html

Winform开发框架之通用Windows录制头调用拍照http://www.cnblogs.com/spring_wang/p/6008674.html

Winform开发框架之图表报表在线设计器2-图表-SNF.EasyQuery项目–SNF飞速支付平台3.3-Spring.Net.Framework

Winform开发框架之图表报表在线设计器-报表-SNF.EasyQuery项目–SNF神速支付平台3.3-Spring.Net.Framework

Winform开发框架之通用附属类小部件管理模块
–SNF快捷支付平台3.3-Spring.Net.Framework

SNFAutoupdater通用自动升级组件V2.0-WinForm

SNF急速支付平台3.2之–.Net可扩展的单子编号生成器-SNF.CodeRule

SNF快捷支付平台3.1之–审核流(3)低调豪华,不难不凡,实例演示-SNF.WorkFlow

SNF飞快支付平台3.1之–审核流(2)流程设计-SNF.WorkFlow效用使用验证

SNF火速支付平台3.1之–审核流(1)SNF.WorkFlow审核流简介

SNF飞快支付平台3.0之–完美的代码生成器SNF.CodeGenerator-火速开发者的利器

依照MVC4+EasyUI的Web开发框架–Spring.Net.FrameworkV3.0总体介绍

SNF快速支付平台3.0之–MVC
打字与印刷消除方案

SNF神速支付平台3.0之–文件批量上传-统一附属类小部件管理器-在线预览文件(有网络和没有三种)

SNF神速支付平台3.0之–asp.net mvc4
强大的导出和不需求上传文件的批量导入EXCEL

SNF飞快支付平台3.0之MVC通用控件库体现-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

SNF飞快支付平台3.0之BS页面展示和九大优点-部分页面展现效果-Asp.net+MVC4.0+WebAPI+EasyUI
+Knockout

SNF火速支付平台3.0之-界面性格化配置+10种皮肤+7种菜单-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

SNF快速支付平台3.0之-CS页面-Asp.net+Spring.Net.Framework

SNF急迅支付平台3.0之–系统里播放的效益–飞速及时、简明扼要的把音讯发送给接收者