Exemplo n.º 1
0
        public bool Auth(string appID, string timestamp, string sign, string ip, out string errorMsg)
        {
            bool isValidIP = IsValidIP(ip);//验证是否是白名单里的IP

            if (isValidIP == false)
            {
                if (string.IsNullOrEmpty(appID))
                {
                    errorMsg = "缺少认证参数[appid]";
                    return(false);
                }
                if (string.IsNullOrEmpty(timestamp))
                {
                    errorMsg = "缺少认证参数[timestamp]";
                    return(false);
                }
                if (string.IsNullOrEmpty(sign))
                {
                    errorMsg = "缺少认证参数[sign]";
                    return(false);
                }
                AppUserInfo appUserInfo = AppUserManager.Create().Get(appID);
                if (appUserInfo == null)
                {
                    errorMsg = "无效的[appid]";
                    return(false);
                }
                string input = string.Format("appid={0}&secretkey={1}&timestamp={2}", appID, appUserInfo.AppSecret, timestamp);

                string checksign = CryptographyManager.MD5(input);
                if (string.Compare(sign, checksign, true) != 0)
                {
                    errorMsg = "认证方式错误";
                    return(false);
                }
            }

            errorMsg = "";
            return(true);
        }