public static void createToken(HttpRequest request, tokenType type, string token = null, int delay = 0) { if (request == null) { return; } try { var index = accesses.FindIndex(a => a.ip == request.getIPAddress() && a.type == type); if (index != -1) { accesses[index] = new tokenAccess(request, type, token, delay); } else { accesses.Add(new tokenAccess(request, type, token, delay)); } } catch { } }
public static bool validateToken(HttpRequest request, tokenType type, string token = null) { tokenAccess tkn = null; if (token != null) { tkn = accesses.Find(a => a.ip == request.getIPAddress() && a.type == type && a.token == token); } else { tkn = accesses.Find(a => a.ip == request.getIPAddress() && a.type == type); } if (tkn != null) { if (tkn.delay > 0 && (int)(DateTime.Now - tkn.last).TotalSeconds < tkn.delay) { return(false); } accesses.Remove(tkn); return(true); } return(false); }