/////////////////////////////////////////////// public ISessionClientSurServeur GetSessionPrincipale() { CAuthentificationSessionSousSession auth = m_authentification as CAuthentificationSessionSousSession; if (auth != null) { ISessionClientSurServeur session = CGestionnaireSessions.GetSessionClientSurServeurStatic(auth.IdSessionPrincipale); if (session != null) { return(session.GetSessionPrincipale()); } } return(this); }
/////////////////////////////////////////////// public void CloseSession() { string strMessage = I.T("Closing session @1|110", IdSession.ToString()); try { strMessage += " " + GetInfoUtilisateur().NomUtilisateur; } catch { } CAuthentificationSessionSousSession authSousSession = m_authentification as CAuthentificationSessionSousSession; if (authSousSession != null) { ISessionClientSurServeur sessionPrinc = CGestionnaireSessions.GetSessionClientSurServeurStatic(authSousSession.IdSessionPrincipale); if (sessionPrinc != null) { sessionPrinc.RemoveSousSession(this); } } C2iEventLog.WriteInfo(strMessage, NiveauBavardage.VraiPiplette); int nIdSession = IdSession; DateTime dt = DateTime.Now; MyCloseSession(); TimeSpan sp = DateTime.Now - dt; Console.WriteLine("SessionServeur closing " + nIdSession + " / 1 : " + sp.TotalMilliseconds); CGestionnaireObjetsAttachesASession.OnCloseSession(IdSession); sp = DateTime.Now - dt; Console.WriteLine("SessionServeur closing " + nIdSession + " / 2 : " + sp.TotalMilliseconds); CGestionnaireSessions.CloseSession(this); sp = DateTime.Now - dt; Console.WriteLine("SessionServeur closing " + nIdSession + " / 3 : " + sp.TotalMilliseconds); CGestionnaireObjetsAttachesASession.OnCloseSession(IdSession); //Si jamais le close sessino a réaloué des éléments sp = DateTime.Now - dt; Console.WriteLine("SessionServeur closing " + nIdSession + " / 4 : " + sp.TotalMilliseconds); m_sponsor.Unregister(m_sessionSurClient); sp = DateTime.Now - dt; Console.WriteLine("SessionServeur closing " + nIdSession + " / 5 : " + sp.TotalMilliseconds); m_sessionSurClient = null; }
/////////////////////////////////////////////// public CSessionClientSurServeur(CSessionClient sessionSurClient) { m_sessionSurClient = sessionSurClient; IdSession = sessionSurClient.IdSession; m_dateHeureConnexion = sessionSurClient.DateHeureConnexion; m_dateHeureDerniereActivite = DateTime.Now; m_sponsor.Register(m_sessionSurClient); m_strDescription = sessionSurClient.DescriptionApplicationCliente; m_typeApplication = sessionSurClient.TypeApplicationCliente; m_authentification = sessionSurClient.Authentification; CAuthentificationSessionSousSession autSousSession = m_authentification as CAuthentificationSessionSousSession; if (autSousSession != null) { ISessionClientSurServeur sessionPrincipale = CGestionnaireSessions.GetSessionClientSurServeurStatic(autSousSession.IdSessionPrincipale); if (sessionPrincipale != null) { sessionPrincipale.RegisterSousSession(this); } } }
protected CResultAErreur CanOpenSessionSousSession(CSessionClient session) { CResultAErreur result = CResultAErreur.True; try { CAuthentificationSessionSousSession auth = (CAuthentificationSessionSousSession)session.Authentification; CSessionClient sessionMain = GetSessionClient(auth.IdSessionPrincipale); if (sessionMain == null) { result.EmpileErreur(I.T("The master session doesn't exist|16")); return(result); } //Effectue un appel pour provoquer une exception en cas d'erreursessionMain.IdSession; int nDummy = sessionMain.IdSession; } catch (Exception e) { result.EmpileErreur(new CErreurException(e)); result.EmpileErreur(I.T("Error while accessing the master session|17")); } return(result); }