zoukankan      html  css  js  c++  java
  • 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);
            }
        }
    }
  • 相关阅读:
    C#学习笔记:多态与隐藏,覆盖
    HTML与XML数据的结合小总结
    基于角色(RoleBased)的表单验证
    去除C++String的首尾空格
    Bash Shell中命令行选项/参数处理
    linux shell 执行多个命令的几种方法
    gdb 多线程调试
    linux 时间戳及时间差计算
    oracle sql日期比较
    在Fedora 14上安装Sun JDK 6
  • 原文地址:https://www.cnblogs.com/fanying/p/10973460.html
Copyright © 2011-2022 走看看