public Boolean ProcessRequest(string Method, string UserId, string Time, string skey) { APIResult obj = new APIResult(); string method = Method; string userId = UserId; string IP = GetClientIp(); Pro p = new Pro(); Boolean b = false; if (method == "get") { p = General(IP, 0, userId); Session["i"] = p.i; Session["s"] = p.s; Session["t"] = p.t; b = true; } if (method == "check") { string time = Time; string key = skey; b = CheckKey(IP, General(IP, Convert.ToInt32(time), userId)); } return(b); }
/// <summary> /// 检查密钥是否能用 /// </summary> /// <returns></returns> public Boolean CheckKey(string IP, Pro p) { if (string.IsNullOrEmpty(IP)) { IP = GetClientIp(); } Pro newp = General(IP, Convert.ToInt32(p.t), p.i); if (p.s == newp.s) { int hh = Math.Abs(ConvertDateTimeInt(DateTime.Now) - (Convert.ToInt32(p.t) - obv)); if (Math.Abs(ConvertDateTimeInt(DateTime.Now) - (Convert.ToInt32(p.t) - obv)) <= ev) { return(true); } } return(false); }
/// <summary> /// 生成密钥 /// </summary> /// <param name="IP"></param> /// <param name="timestamp"></param> /// <param name="Id"></param> /// <returns></returns> public Pro General(string IP, int timestamp, string Id) { if (string.IsNullOrEmpty(Id)) { return(null); } if (timestamp == 0) { timestamp = ConvertDateTimeInt(DateTime.Now) + obv; } if (string.IsNullOrEmpty(IP)) { IP = GetClientIp(); } string str = "|" + Id + "," + keys + "-" + IP + "]" + timestamp; Pro p = new Pro(); p.i = Id; p.s = GetMD5(str); p.t = timestamp.ToString(); return(p); }