Exemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="objLogin"></param>
        /// <param name="loginResult"></param>
        /// <param name="forcedLogin">
        /// Imposta se la connessione deve essere forzata, ossia
        /// una eventuale connessione esistente viene annullata).
        /// </param>
        /// <returns></returns>
        public static DocsPaVO.utente.UserLogin.ValidationResult ValidateLogin(string userName, string idAmministrazione, string webSessionId)
        {
            DocsPaVO.utente.UserLogin.ValidationResult result = DocsPaVO.utente.UserLogin.ValidationResult.OK;

            try
            {
                DocsPaDB.Query_DocsPAWS.Utenti gestioneUtenti = new DocsPaDB.Query_DocsPAWS.Utenti();
                result = gestioneUtenti.CheckUserLogin(userName, idAmministrazione, webSessionId);
            }
            catch (Exception exception)
            {
                logger.Debug("Errore durante la validazione della sessione web.", exception);
                result = DocsPaVO.utente.UserLogin.ValidationResult.APPLICATION_ERROR;
            }

            return(result);
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="objLogin"></param>
        /// <param name="loginResult"></param>
        /// <param name="forcedLogin">
        /// Imposta se la connessione deve essere forzata, ossia
        /// una eventuale connessione esistente viene annullata).
        /// </param>
        /// <returns></returns>
        public static DocsPaVO.utente.Utente loginMethod(DocsPaVO.utente.UserLogin objLogin,
                                                         out DocsPaVO.utente.UserLogin.LoginResult loginResult, bool forcedLogin,
                                                         string webSessionId, out string ipaddress)
        {
            DocsPaVO.utente.Utente utente = null;
            loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;
            ipaddress   = string.Empty;
            bool multiAmm = false;

            try
            {
                if (DocsPaUtils.Security.SSOAuthTokenHelper.IsAuthToken(objLogin.Password))
                {
                    string ssoTok = DocsPaUtils.Security.SSOAuthTokenHelper.Restore(objLogin.UserName, objLogin.Password);
                    objLogin.SSOLogin = true;
                }
            }
            catch { }

            try
            {
                // Ricerca dell'utente in amministrazione
                if (string.IsNullOrEmpty(objLogin.IdAmministrazione))
                {
                    try
                    {
                        ArrayList listaAmmin = UserManager.getListaIdAmmUtente(objLogin);

                        if (listaAmmin != null && listaAmmin.Count > 0)
                        {
                            if (listaAmmin.Count == 1)
                            {
                                objLogin.IdAmministrazione = listaAmmin[0].ToString();
                            }
                            else
                            {
                                //loginResult = DocsPaVO.utente.UserLogin.LoginResult.NO_AMMIN;
                                multiAmm = true;
                                objLogin.IdAmministrazione = listaAmmin[0].ToString();
                            }
                        }
                        if (listaAmmin == null)
                        {
                            logger.Debug("Attenzione, la query S_People in GetIdAmmUtente non ha dato alcun risultato.");
                        }
                    }
                    catch (Exception ex)
                    {
                        logger.Debug("Errore di connessione al DB durante la procedura di login");
                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.DB_ERROR;
                    }
                }

                // Se l'amministrazione è stata impostata
                if (!string.IsNullOrEmpty(objLogin.IdAmministrazione))
                {
                    // Get User
                    DocsPaDocumentale.Documentale.UserManager userManager = new DocsPaDocumentale.Documentale.UserManager();

                    if (userManager.LoginUser(objLogin, out utente, out loginResult))
                    {
                        // Impostazione id sessione utente
                        utente.sessionID = webSessionId;

                        if (!forcedLogin) // Gestione delle connessioni esistenti da amministrazione
                        {
                            //login concesso all'utente
                            //si verifica la tabella DPA_LOGIN per unicità della connessione
                            //la funzione torna True se l'utente è già collegato
                            DocsPaDB.Query_DocsPAWS.Utenti gestioneUtenti = new DocsPaDB.Query_DocsPAWS.Utenti();

                            if (!gestioneUtenti.CheckUserLogin(utente.userId, utente.idAmministrazione))
                            {
                                utente.ruoli   = UserManager.getRuoliUtente(utente.idPeople);
                                utente.dominio = getDominio(utente.idPeople);

                                if (utente.ruoli.Count == 0 && DocsPaUtils.Moduli.ModuliAuthManager.RolesRequired(objLogin.Modulo))
                                {
                                    loginResult = DocsPaVO.utente.UserLogin.LoginResult.NO_RUOLI;
                                    utente      = null;
                                }
                                else
                                {
                                    gestioneUtenti.LockUserLogin(utente.userId, utente.idAmministrazione, webSessionId, objLogin.IPAddress, utente.dst);
                                    if (!multiAmm)
                                    {
                                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK;
                                    }
                                    else
                                    {
                                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.NO_AMMIN;
                                    }
                                }
                            }
                            else
                            {
                                if (!multiAmm)
                                {
                                    loginResult = DocsPaVO.utente.UserLogin.LoginResult.USER_ALREADY_LOGGED_IN;
                                }
                                else
                                {
                                    loginResult = DocsPaVO.utente.UserLogin.LoginResult.NO_AMMIN;
                                }
                                //loginResult = DocsPaVO.utente.UserLogin.LoginResult.USER_ALREADY_LOGGED_IN;
                                ipaddress = gestioneUtenti.GetUserIPAddress(utente.userId, utente.idAmministrazione);
                                utente    = null;
                            }
                        }
                        else
                        {
                            // Gestione utente delle connessioni esistenti
                            DocsPaDB.Query_DocsPAWS.Utenti gestioneUtenti = new DocsPaDB.Query_DocsPAWS.Utenti();

                            // Cancella eventuali connessioni esistenti
                            gestioneUtenti.UnlockUserLogin(utente.userId, utente.idAmministrazione);

                            // Assegna connessione
                            gestioneUtenti.LockUserLogin(utente.userId, utente.idAmministrazione,
                                                         webSessionId, objLogin.IPAddress, utente.dst);
                            utente.ruoli   = UserManager.getRuoliUtente(utente.idPeople);
                            utente.dominio = getDominio(utente.idPeople);
                            if (utente.ruoli.Count == 0 && DocsPaUtils.Moduli.ModuliAuthManager.RolesRequired(objLogin.Modulo))
                            {
                                loginResult = DocsPaVO.utente.UserLogin.LoginResult.NO_RUOLI;
                                utente      = null;
                            }

                            // Qualifiche Utente
                            string value = DocsPaUtils.Configuration.InitConfigurationKeys.GetValue("0", "GESTIONE_QUALIFICHE");
                            if (!string.IsNullOrEmpty(value) && value.Equals("1"))
                            {
                                utente.qualifiche = new ArrayList(utenti.QualificheManager.GetPeopleGroupsQualificheByIdPeople(utente.idPeople));
                            }
                        }
                    }
                }
            }
            catch (Exception e)
            {
                logger.Debug(e.Message);
                loginResult = DocsPaVO.utente.UserLogin.LoginResult.APPLICATION_ERROR;
                logger.Debug("Errore nella gestione degli utenti (loginMethod)");
                utente = null;
            }

            return(utente);
        }
Exemplo n.º 3
0
        public static DocsPaVO.utente.Utente esercitaDelega(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.utente.UserLogin objLogin, string webSessionId, string id_delega, string idRuoloDelegante, out DocsPaVO.utente.UserLogin.LoginResult loginResult)
        {
            DocsPaVO.utente.Utente utente = null;

            loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK;
            try
            {
                //INC000001112977 PAT gestione deleghe
                //Dismetto le deleghe rimaste in esercizio
                DocsPaDB.Query_DocsPAWS.Deleghe deleghe = new DocsPaDB.Query_DocsPAWS.Deleghe();
                deleghe.DismettiDelegheInEsercizio(infoUtente);

                // Get User

                // ricostruzione informazioni utente delegante
                logger.DebugFormat("username {0} idAmm {1}", objLogin.UserName, objLogin.IdAmministrazione);
                utente = BusinessLogic.Utenti.UserManager.getUtente(objLogin.UserName, objLogin.IdAmministrazione);
                if (utente == null)
                {
                    logger.Error("utente è null");
                }


                // impostazione token di autenticazione
                DocsPaDocumentale.Documentale.UserManager userManager = new DocsPaDocumentale.Documentale.UserManager();
                utente.dst = userManager.GetSuperUserAuthenticationToken();

                // Impostazione id sessione utente
                utente.sessionID = webSessionId;

                //Verifico che l'utente delegante non sia connesso
                //si verifica la tabella DPA_LOGIN per unicità della connessione
                //la funzione torna True se l'utente è già collegato
                DocsPaDB.Query_DocsPAWS.Utenti gestioneUtenti = new DocsPaDB.Query_DocsPAWS.Utenti();

                if (!gestioneUtenti.CheckUserLogin(utente.userId, utente.idAmministrazione))
                {
                    if (idRuoloDelegante == "0")
                    {
                        //L'utente delegato eredita tutti i ruoli del delegante
                        utente.ruoli = BusinessLogic.Utenti.UserManager.getRuoliUtente(utente.idPeople);
                    }
                    else
                    {
                        ArrayList ruoli     = BusinessLogic.Utenti.UserManager.getRuoliUtente(utente.idPeople);
                        ArrayList listRuolo = new ArrayList();
                        foreach (DocsPaVO.utente.Ruolo ruolo in ruoli)
                        {
                            if (idRuoloDelegante.Equals(ruolo.systemId))
                            {
                                listRuolo.Add(ruolo);
                            }
                        }
                        utente.ruoli = listRuolo;
                    }
                    utente.dominio = getDominio(utente.idPeople);

                    if (utente.ruoli.Count == 0)
                    {
                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.NO_RUOLI;
                        utente      = null;
                    }
                    else
                    {
                        gestioneUtenti.LockUserLoginDelegato(utente.userId, utente.idAmministrazione, webSessionId, objLogin.IPAddress, utente.dst, infoUtente.userId, id_delega);
                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK;
                    }
                }
                else
                {
                    //Utente delegante loggato: viene rimosso dalla dpa_login (cosidetta porcata)
                    DocsPaDB.Query_DocsPAWS.Utenti dbUserManager = new DocsPaDB.Query_DocsPAWS.Utenti();
                    if (gestioneUtenti.UnlockUserLogin(utente.userId, utente.idAmministrazione, utente.sessionID))
                    {
                        if (idRuoloDelegante == "0")
                        {
                            //L'utente delegato eredita tutti i ruoli del delegante
                            utente.ruoli = BusinessLogic.Utenti.UserManager.getRuoliUtente(utente.idPeople);
                        }
                        else
                        {
                            ArrayList ruoli     = BusinessLogic.Utenti.UserManager.getRuoliUtente(utente.idPeople);
                            ArrayList listRuolo = new ArrayList();
                            foreach (DocsPaVO.utente.Ruolo ruolo in ruoli)
                            {
                                if (idRuoloDelegante.Equals(ruolo.systemId))
                                {
                                    listRuolo.Add(ruolo);
                                }
                            }
                            utente.ruoli = listRuolo;
                        }
                        utente.dominio = getDominio(utente.idPeople);

                        if (utente.ruoli.Count == 0)
                        {
                            loginResult = DocsPaVO.utente.UserLogin.LoginResult.NO_RUOLI;
                            utente      = null;
                        }
                        else
                        {
                            gestioneUtenti.LockUserLoginDelegato(utente.userId, utente.idAmministrazione, webSessionId, objLogin.IPAddress, utente.dst, infoUtente.userId, id_delega);
                            loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK;
                        }
                    }
                    else
                    {
                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.USER_ALREADY_LOGGED_IN;
                        utente      = null;
                    }
                }
            }
            catch (Exception e)
            {
                logger.ErrorFormat("msg {0}  stk {1} ", e.Message, e.StackTrace);
                loginResult = DocsPaVO.utente.UserLogin.LoginResult.APPLICATION_ERROR;
                logger.Debug("Errore nella gestione degli utenti (loginMethod)");
                utente = null;
            }

            return(utente);
        }