public TerminateSessionResponse TerminateSession(TerminateSessionRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.UserName, "UserName"); Platform.CheckMemberIsSet(request.SessionToken, "SessionToken"); // get the session and user var session = GetSession(request.SessionToken); if (session == null) { throw new InvalidUserSessionException(); } var user = session.User; // validate the session, ignoring the expiry time session.Validate(request.UserName, false); // terminate it session.Terminate(); // delete the session object var broker = PersistenceContext.GetBroker <IUserSessionBroker>(); broker.Delete(session); // while we're at it, clean-up any other expired sessions for that user CleanExpiredSessions(user); return(new TerminateSessionResponse()); }
public void Logout(string tokenId) { var session = SessionCache.Instance.Find(tokenId); if (session == null) { throw new Exception(String.Format("Unexpected error: session {0} does not exist in the cache", tokenId)); } var request = new TerminateSessionRequest(session.Credentials.UserName, session.Credentials.SessionToken); Platform.GetService( delegate(IAuthenticationService service) { service.TerminateSession(request); SessionCache.Instance.RemoveSession(tokenId); }); }
/// <summary> /// Terminates the current session. /// </summary> private void Terminate() { if (!_loginResult.LoggedIn) { return; } try { Platform.GetService( delegate(IAuthenticationService service) { var request = new TerminateSessionRequest(_loginResult.UserName, _loginResult.SessionToken); service.TerminateSession(request); }); } finally { _loginResult = LoginResult.None; } }
public TerminateSessionResponse TerminateSession(TerminateSessionRequest request) { SessionTokenManager.Instance.RemoveSession(request.SessionToken); return(new TerminateSessionResponse()); }