public AdminController(ILog logger, AuthDao auth = null)
     : base(logger)
 {
     if (auth == null)
     {
         _authDao = GlobalHandle <ILifetimeScope> .GetCurrentRef().Resolve <AuthDao>();
     }
     else
     {
         _authDao = auth;
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 验证签名
        /// </summary>
        /// <param name="baseApi">传入参数</param>
        /// <param name="route">API路径</param>
        /// <returns>验证结果,null为通过</returns>
        private Message CheckSign(BaseApi baseApi, string route)
        {
            Message msg = null;

            if (baseApi.code != null)
            {
                string appSecret = new AuthDao().GetAccess(baseApi.code, baseApi.appId);
                if (appSecret == null)
                {
                    msg = new Message(CodeMessage.AppIDError, "AppIDError");
                }
                else
                {
                    string placeHold = "__PLACEHOLD__";
                    string paramS    = Regex.Replace(
                        baseApi.param.ToString(),
                        "\"(.+?)\"",
                        new MatchEvaluator(
                            (s) =>
                    {
                        return(s.ToString().Replace(" ", placeHold));
                    }))
                                       .Replace("\n", "")
                                       .Replace("\r", "")
                                       .Replace(" ", "")
                                       .Replace(placeHold, " ");
                    string needMd5 = baseApi.appId + baseApi.nonceStr + appSecret + paramS;
                    string md5S    = "";
                    using (var md5 = MD5.Create())
                    {
                        var result    = md5.ComputeHash(Encoding.UTF8.GetBytes(needMd5));
                        var strResult = BitConverter.ToString(result);
                        md5S = strResult.Replace("-", "");
                    }
                    if (baseApi.sign != md5S)
                    {
                        msg = new Message(CodeMessage.SignError, "SignError");
                    }
                }
            }
            else
            {
                msg = new Message(CodeMessage.InvalidCode, "InvalidCode");
            }
            return(msg);
        }