Exemplo n.º 1
0
 //<summary>
 //签名
 //</summary>
 //<param name="signatureInfo"></param>
 //<returns></returns>
 private bool checkSign(Entity.SignatureInfo signInfo)
 {
     using (var manage = new Data.CMSManage())
     {
         var modelInfo = manage.getModuleInfo(signInfo.AppId.ToLower(), Entity.ModuleType.API);
         if (modelInfo != null && modelInfo.Enabled == 1)
         {
             Int64 timestamp = 0;
             Int64.TryParse(signInfo.Timestamp, out timestamp);
             var span = Utils.getTimestamp() - timestamp;
             if (modelInfo.TimestampExpired > 0 && (span > modelInfo.TimestampExpired || span < 0 - modelInfo.TimestampExpired))
             {
                 return(false);//时间戳过期
             }
             //获取参数
             var sortDic = getRequest();
             sortDic.Add("appsecret", modelInfo.AppSecret);
             //MD5加密
             var sign = getSign(sortDic);
             return(sign.Equals(signInfo.Sign));
         }
         else
         {
             return(false);
         }
     }
 }
Exemplo n.º 2
0
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var signatureInfo = new Entity.SignatureInfo();

            if (TryUpdateModel(signatureInfo))//获取APPID
            {
                if (signatureInfo != null && !string.IsNullOrEmpty(signatureInfo.AppId) && !string.IsNullOrEmpty(signatureInfo.Nonce) && !string.IsNullOrEmpty(signatureInfo.Sign) && !string.IsNullOrEmpty(signatureInfo.Timestamp))
                {
                    if (!checkSign(signatureInfo))
                    {
                        filterContext.Result = getResult(Entity.Error.签名失败, "签名失败!");
                        return;
                    }
                }
                else
                {
                    filterContext.Result = getResult(Entity.Error.签名失败, "参数错误!");
                    return;
                }
            }
            else
            {
                filterContext.Result = getResult(Entity.Error.签名失败, "参数错误!");
                return;
            }

            base.OnActionExecuting(filterContext);
        }