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;
            }
    

      

  • 相关阅读:
    HDU 4686
    二叉索引树——树状数组
    poj 3548 Restoring the digits(DFS)
    poj 2062 Card Game Cheater(排序+模拟)
    poj 2570 Fiber Network(floyd)
    hdu 1080 Human Gene Functions
    hdu 4512 吉哥系列故事——完美队形I(最长公共上升自序加强版)
    2015 Multi-University Training Contest 2
    poj 1258 Agri-Net(最小生成树)
    2015 Multi-University Training Contest 1记录
  • 原文地址:https://www.cnblogs.com/fger/p/10829091.html
Copyright © 2011-2022 走看看