Beispiel #1
0
        ///////////////////////////////////////////////
        public CResultAErreur OpenSession(IAuthentificationSession authentification, string strDescriptionApplication, ETypeApplicationCliente typeApplication)
        {
            CResultAErreur        result       = CResultAErreur.True;
            IGestionnaireSessions gestionnaire = null;

            try
            {
                //Ne pas utiliser GestionnaireSessions car on a besoin du type de gestionnaire
                //Si l'appli utilise plusieurs gestionnaires de sessions
                gestionnaire = (IGestionnaireSessions)C2iFactory.GetNewObject(m_typeGestionnaireSessions);
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
                result.EmpileErreur(I.T("Error during the allowance of sessions manager|107"));
                return(result);
            }

            m_authentification = authentification;
            m_strDescription   = strDescriptionApplication;
            m_typeApplication  = typeApplication;
            try
            {
                result = gestionnaire.OpenSession(this);
                if (result)
                {
                    m_tableSessionParId[IdSession]    = this;
                    m_tableSessionsLocales[IdSession] = true;
                    if (AfterOpenSession != null)
                    {
                        AfterOpenSession(this);
                    }
                    if (m_nFirstSessionOuverte == -1)
                    {
                        m_nFirstSessionOuverte = IdSession;
                    }
                    GetDataThread(m_bUseSessionUtilisateurData).PushIdSession(IdSession);
                    m_bIsOpen = true;
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
                result.EmpileErreur(I.T("Error while opening session|108"));
                return(result);
            }
            return(result);
        }
        ///////////////////////////////////////////////
        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);
                }
            }
        }