• 一、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;
            }
    

      

  • 相关阅读:
    硬盘坏道及后续的拯救工作
    Extension GL_VERSION_1_2 could not be loaded.
    js显示当前的年月日时分秒
    如何删除桌面上的回收站?
    Fedora 15 U盘 安装心得
    庄子·内篇·逍遥游
    Additional Oracle Performance Extensions
    Features Specific to JDBC OCI Driver
    OracleDatabase 配置
    vim字符编码设置
  • 原文地址:https://www.cnblogs.com/fger/p/10829091.html
Copyright © 2020-2023  润新知