• web api对接小程序基本签名认证


    using BMOA.Application.System;
    using BMOA.Common;
    using BMOA.Web.Models;
    using Newtonsoft.Json;
    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Linq;
    using System.Net.Http;
    using System.Web;
    using System.Web.Http.Controllers;
    using System.Web.Http.Filters;
    
    namespace KBMOA.Web.Filter
    {
        /// <summary>
        /// Api请求过滤器
        /// </summary>
        public class ApiFilter : ActionFilterAttribute
        {
            /// <summary>
            /// 小程序端请使用sha1加密appkey
            /// </summary>
            /// <param name="actionContext"></param>
            public override void OnActionExecuting(HttpActionContext actionContext)
            {
                string appkey = string.Empty;
                string apppwd = string.Empty;
                if (actionContext.Request.Headers.Contains("appkey"))
                {
                    appkey = HttpUtility.UrlDecode(actionContext.Request.Headers.GetValues("appkey").FirstOrDefault());
                }
                if (actionContext.Request.Headers.Contains("apppwd"))
                {
                    apppwd = HttpUtility.UrlDecode(actionContext.Request.Headers.GetValues("apppwd").FirstOrDefault());
                }
    
                //判断请求头是否包含以下参数
                if (string.IsNullOrEmpty(appkey) || string.IsNullOrEmpty(apppwd))
                {
                    Check(actionContext);
                    base.OnActionExecuting(actionContext);
                }
                if (appkey.Equals(YG_Config.appkey) == false || string.Equals(apppwd, ZEncypt.Sha1(appkey), StringComparison.CurrentCultureIgnoreCase) == false)
                {
                    Check(actionContext);
                    base.OnActionExecuting(actionContext);
                }
            }
    
            private void Check(HttpActionContext actionContext)
            {
                ResponseModel result = new ResponseModel() { Success = false };
                result.Message = "此请求未经授权";
                actionContext.Response = actionContext.Request.CreateResponse(result);
            }
        }
    }
  • 相关阅读:
    【原创】MessageBox设置默认按钮
    探秘Win7计算器,这货不只是计算器
    android fill_parent和match_parent 的区别
    陈晓旭出家申明
    vi语法高亮
    EXTJS 常用控件的使用
    android平台下使用点九PNG技术
    【Android】附加Android源代码Androidandroid_gingerbread_javasrc
    ComboBox控件隐藏fieldLabel不能隐藏问题解决
    ScriptLoader.loadScripts cannot be called while the ScriptLoader is already loading scripts
  • 原文地址:https://www.cnblogs.com/fanying/p/10973460.html
Copyright © 2020-2023  润新知