zoukankan      html  css  js  c++  java
  • 一、Api

    一、

            private static readonly IList<string> BaseParamKey = new List<string>() { "apiId", "timeStamp", "nonce_Str", "signature" };
    
            [AcceptVerbs("POST", "GET")]
            [RiskAssessApi]
            public CommonAPIResult<Object> GetRiskAssess(dynamic model)
            {
                var res = new CommonAPIResult<Object>();
    
                if (string.IsNullOrWhiteSpace(WebCommon.Public.GetAdminName()))
                {
                    HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];
                    HttpRequestBase reques = context.Request;
                    var param = new NameValueCollection();
                    var method = context.Request.HttpMethod.ToUpperInvariant();
                    param = method.Equals("GET", StringComparison.OrdinalIgnoreCase) ? context.Request.QueryString : context.Request.Form;
                    if (!BuilderSigner(model.signature, BaseParamKey))
                    {
                        res.Message = "该用户不具备查询条件";
                        res.Code = 503;
                        res.Result = null;
                        return res;
                    }
                }
                else
                {
                    int UserId = Tbl_AdminManager.GetTbl_AdminByName(WebCommon.Public.GetAdminName()).ID;
                    var ApiKeyInfo = Tbl_ApiUserManager.GetTbl_ApiUserAll().Where(x => x.AdminId == UserId).SingleOrDefault();
                    if (string.IsNullOrWhiteSpace(ApiKeyInfo.ApiId)) {
                        res.Message = "该用户不具备查询条件";
                        res.Code = 503;
                        res.Result = null;
                        return res;
                    }              
                }
                Generator.GetRiskAssess(model);
                return res;
    
            }
    
    
            public bool BuilderSigner(string sign,IList<string> param)
            {
            //按key升序排序的待签名字符串
                var str = new StringBuilder();
                foreach (var key in param.OrderBy(x => x))
                {
                    if (key.Equals("signature", StringComparison.OrdinalIgnoreCase))
                    {
                        continue;
                    }
                    str.AppendFormat("{0}={1}&", key, HttpUtility.UrlEncode(key));
                }
                //str.AppendFormat("apikey={0}", apiUserModel.ApiKey);
                var calSignature = Public.MD5Str(str.ToString());
                if (!calSignature.Equals(sign, StringComparison.OrdinalIgnoreCase))
                    return false;//
                else
                    return true;
            }
    

      

  • 相关阅读:
    html和css简介;
    包装函数,面向切面的函数实现;
    RegExp
    javascript基础语法&5
    用Pyinstaller把Python3.7程序打包成可执行文件exe
    Idea下安装Lombok插件
    Moco框架jar下载地址
    安装时后的idea,项目不能运行,pom.xml文件不能下载到本地仓库,maven配置是正确的
    如何使用Git命令将项目从github或者服务器上克隆下来
    github怎么创建一个项目,怎么添加一个ssh-key的客户
  • 原文地址:https://www.cnblogs.com/fger/p/10829091.html
Copyright © 2011-2022 走看看