public AdminController(ILog logger, AuthDao auth = null) : base(logger) { if (auth == null) { _authDao = GlobalHandle <ILifetimeScope> .GetCurrentRef().Resolve <AuthDao>(); } else { _authDao = auth; } }
/// <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); }