/// <summary> /// AddToReplay method implementation /// </summary> internal bool AddToReplay(NamedPipeNotificationReplayRecord record) { bool exist = false; if (record.ReplayLevel == ReplayLevel.Disabled) { return(true); } else if (record.ReplayLevel == ReplayLevel.Intermediate) { lock (_lock) { exist = _lst.Exists(s => (s.UserName.ToLower().Equals(record.UserName.ToLower())) && (s.Totp == record.Totp) && (!s.UserIPAdress.Equals(record.UserIPAdress))); if (!exist) { _lst.Add(record); } } return(!exist); } else if (record.ReplayLevel == ReplayLevel.Full) { lock (_lock) { exist = _lst.Exists(s => (s.UserName.ToLower().Equals(record.UserName.ToLower())) && (s.Totp == record.Totp)); if (!exist) { _lst.Add(record); } } return(!exist); } return(false); }
/// <summary> /// DoOnCheckForRemoteReplay method implementation (Server) /// </summary> private bool DoOnCheckForRemoteReplay(NamedPipeNotificationReplayRecord record) { if (_adfsservers.Count == 0) { BuildADFSServersList(); } PipeClient pipe = new PipeClient(XORUtilities.XORKey, this.ADFSServers, true); return(pipe.DoCheckForRemoteReplay(record)); }
/// <summary> /// DoOnCheckForReplay method implementation (Server) /// </summary> private bool DoOnCheckForReplay(NamedPipeNotificationReplayRecord record) { return(_replaymgr.AddToReplay(record)); }