Beispiel #1
0
        /// <summary>
        /// Effettua il login di un utente amministratore
        /// </summary>
        /// <param name="utente"></param>
        /// <param name="loginResult"></param>
        /// <returns></returns>
        public bool LoginAdminUser(DocsPaVO.utente.UserLogin userLogin, bool forceLogin, out DocsPaVO.amministrazione.InfoUtenteAmministratore utente, out DocsPaVO.utente.UserLogin.LoginResult loginResult)
        {
            // Per la login in amministrazione, la gestione è delegata al documentale etdocs
            IUserManager etdocsUserManager = new DocsPaDocumentale_ETDOCS.Documentale.UserManager();

            return(etdocsUserManager.LoginAdminUser(userLogin, forceLogin, out utente, out loginResult));
        }
Beispiel #2
0
        /// <summary>
        /// Modifica password utente
        /// </summary>
        /// <param name="newPassword"/></param>
        /// <param name="utente"></param>
        ///// <returns></returns>
        public DocsPaVO.Validations.ValidationResultInfo ChangeUserPwd(DocsPaVO.utente.UserLogin user, string oldPassword)
        {
            DocsPaVO.Validations.ValidationResultInfo result = new DocsPaVO.Validations.ValidationResultInfo();

            DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti();
            if (!utenti.CambiaPassword(user, oldPassword))
            {
                result.BrokenRules.Add(new DocsPaVO.Validations.BrokenRule("ChangePassword_ERROR", "Errore nella modifica della password per il documentale FILENET", DocsPaVO.Validations.BrokenRule.BrokenRuleLevelEnum.Error));
            }

            if (result.BrokenRules.Count == 0)
            {
                // gestione specifica per Filenet---------------------------------------------------------
                string oldPwd = utenti.GetPasswordUserFilenet(user.UserName);

                if (!this.ChangeUserFilenetPassword(user.UserName, oldPwd, user.UserName, user.IdAmministrazione))
                {
                    result.BrokenRules.Add(new DocsPaVO.Validations.BrokenRule("ChangePassword_ERROR", "Errore nella modifica della password per il documentale FILENET", DocsPaVO.Validations.BrokenRule.BrokenRuleLevelEnum.Error));
                }
            }

            result.Value = (result.BrokenRules.Count == 0);

            return(result);
        }
Beispiel #3
0
        public DocsPaVO.utente.Utente LoginRDE(DocsPaVO.utente.Login login)
        {
            DocsPaVO.utente.Utente utente = null;
            try
            {
                DocsPaVO.utente.UserLogin userLogin = new DocsPaVO.utente.UserLogin(login.userName,
                                                                                    login.password,
                                                                                    login.idAmministrazione,
                                                                                    login.dominio,
                                                                                    null,
                                                                                    login.update);

                DocsPaVO.utente.UserLogin.LoginResult loginResult;
                string ipaddress = "";
                //utente = BusinessLogic.Utenti.Login.loginMethod(userLogin, out loginResult, true,
                //    null, out ipaddress);
                utente = BusinessLogic.RDE.Rde.loginMethod(userLogin, out loginResult, true, null, out ipaddress);
            }
            catch (Exception e)
            {
                logger.Error("RDE - Errore durante la login.", e);
                utente = null;
            }
            return(utente);
        }
Beispiel #4
0
        /// <summary>
        /// Modifica password utente
        /// </summary>
        /// <param name="newPassword"/></param>
        /// <param name="utente"></param>
        ///// <returns></returns>
        public DocsPaVO.Validations.ValidationResultInfo ChangeUserPwd(DocsPaVO.utente.UserLogin user, string oldPassword)
        {
            DocsPaVO.Validations.ValidationResultInfo result = null;

            AdminPasswordConfig pwdConfig = new AdminPasswordConfig();

            if (pwdConfig.IsSupportedPasswordConfig())
            {
                // Se è abilitata la gestione configurazioni password
                int idAmministrazione = 0;
                if (!string.IsNullOrEmpty(user.IdAmministrazione))
                {
                    idAmministrazione = Convert.ToInt32(user.IdAmministrazione);
                }

                result = DocsPaPwdServices.UserPasswordServices.SetPassword(user.UserName, user.Password, false);
            }
            else
            {
                result = new DocsPaVO.Validations.ValidationResultInfo();

                DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti();
                if (!utenti.CambiaPassword(user, oldPassword))
                {
                    result.BrokenRules.Add(new DocsPaVO.Validations.BrokenRule("ChangePassword_ERROR", "Errore nella modifica della password per il documentale ETDOCS", DocsPaVO.Validations.BrokenRule.BrokenRuleLevelEnum.Error));
                }

                result.Value = (result.BrokenRules.Count == 0);
            }

            return(result);
        }
Beispiel #5
0
        /// <summary>
        /// Caricamento dati per login
        /// </summary>
        /// <returns></returns>
        private bool Login()
        {
            bool result = true;             // Presume successo

            try
            {
                UserData userData = new UserData(true);
                GetUserData(ref userData, parser.DocumentElement.SelectSingleNode("DATI"));

                DocsPaVO.utente.UserLogin userLogin = new DocsPaVO.utente.UserLogin(userData.utente, userData.password, userData.idAmm, "");

                DocsPaVO.utente.Utente utente;
                DocsPaDocumentale.Documentale.UserManager userManager = new DocsPaDocumentale.Documentale.UserManager();
                DocsPaVO.utente.UserLogin.LoginResult     loginResult;
                userManager.LoginUser(userLogin, out utente, out loginResult);

                DocsPaVO.utente.Ruolo ruolo = new DocsPaVO.utente.Ruolo();

                this.infoUtente = new DocsPaVO.utente.InfoUtente(utente, ruolo);
            }
            catch (Exception exception)
            {
                logger.Debug("Errore durante la login.", exception);
                result = false;
            }

            return(result);
        }
Beispiel #6
0
        public static bool AddBrowserInfo(DocsPaVO.utente.UserLogin objLogin, string idPeople)
        {
            bool retValue = false;

            DocsPaDB.Query_DocsPAWS.Utenti gestioneUtenti = new DocsPaDB.Query_DocsPAWS.Utenti();
            retValue = gestioneUtenti.AddBrowserInfo(objLogin.BrowserInfo, idPeople, objLogin.UserName, objLogin.IPAddress);
            return(retValue);
        }
Beispiel #7
0
        public string Login(string userid, string pwd, string idAmm)
        {
            string esito = string.Empty;

            try
            {
                this.canaleWSAperto();

                DocsPaVO.utente.UserLogin objLogin = new DocsPaVO.utente.UserLogin();
                objLogin.UserName          = userid;
                objLogin.Password          = pwd;
                objLogin.IdAmministrazione = idAmm;
                objLogin.Update            = false;

                //autenticazione
                DocsPaVO.utente.UserLogin.LoginResult Lr = this.ExecuteLogin(objLogin, false);

                if (Lr.Equals(DocsPaVO.utente.UserLogin.LoginResult.USER_ALREADY_LOGGED_IN))
                {
                    Lr = this.ExecuteLogin(objLogin, true);
                }

                switch (Lr)
                {
                case DocsPaVO.utente.UserLogin.LoginResult.OK:
                {
                    break;
                }

                case DocsPaVO.utente.UserLogin.LoginResult.APPLICATION_ERROR:
                {
                    esito = "Login : errore generico";
                    break;
                }

                case DocsPaVO.utente.UserLogin.LoginResult.DISABLED_USER:
                {
                    esito = "Login: utente non abilitato";
                    break;
                }

                case DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER:
                {
                    esito = "Login: utente non riconosciuto";
                    break;
                }
                }
            }
            catch (Exception ex)
            {
                esito = ex.ToString();
            }

            return(esito);
        }
Beispiel #8
0
        public DocsPaVO.documento.FileDocumento[] outFileRequest(string userName, string pass, string codRuolo, string[] idDocNumber)
        {
            List <DocsPaVO.documento.FileDocumento> lista = new List <DocsPaVO.documento.FileDocumento>();

            DocsPaVO.utente.UserLogin user = new DocsPaVO.utente.UserLogin();
            user.UserName = userName;
            user.Password = pass;
            DocsPaVO.utente.UserLogin.LoginResult result;
            string ipaddress = string.Empty;

            DocsPaVO.utente.Utente utente = BusinessLogic.Utenti.Login.loginMethod(user, out result, true, null, out ipaddress);

            if (result == DocsPaVO.utente.UserLogin.LoginResult.OK)
            {
                DocsPaVO.utente.Ruolo ruolo = null;
                foreach (DocsPaVO.utente.Ruolo r in utente.ruoli)
                {
                    if (r.codiceRubrica.ToLower() == codRuolo.ToLower())
                    {
                        ruolo = r;
                        break;
                    }
                }


                if (ruolo != null)
                {
                    string token = GetToken(utente, ruolo);
                    DocsPaVO.utente.InfoUtente infoutente = null;
                    infoutente = getInfoUtenteFromToken(token);
                    DocsPaVO.documento.SchedaDocumento scheda = BusinessLogic.Documenti.DocManager.getDettaglio(infoutente, idDocNumber[0], idDocNumber[0]);


                    foreach (string docnumber in idDocNumber)
                    {
                        DocsPaVO.documento.FileDocumento   filedoc         = null;
                        DocsPaVO.documento.SchedaDocumento schedaDocumento = BusinessLogic.Documenti.DocManager.getDettaglio(infoutente, docnumber, docnumber);
                        for (int i = 0; i < scheda.documenti.Count; i++)
                        {
                            filedoc = BusinessLogic.Documenti.FileManager.getFile((DocsPaVO.documento.FileRequest)scheda.documenti[i], infoutente);
                            lista.Add(filedoc);
                        }

                        for (int i = 0; i < scheda.allegati.Count; i++)
                        {
                            filedoc = BusinessLogic.Documenti.FileManager.getFile((DocsPaVO.documento.FileRequest)scheda.allegati[i], infoutente);
                            lista.Add(filedoc);
                        }
                    }
                }
            }
            return(lista.ToArray());
        }
Beispiel #9
0
        public virtual DocsPaVO.amministrazione.InfoUtenteAmministratore Login(DocsPaVO.utente.UserLogin userLogin)
        {
            DocsPaVO.amministrazione.InfoUtenteAmministratore infoUtenteAmm = null;
            try
            {
                BusinessLogic.Amministrazione.AmministraManager.LoginAmministratoreProfilato(userLogin, true, out infoUtenteAmm);
            }
            catch (Exception e)
            {
                logger.Debug("ERROR -  DocsPaWSImportOrganigramma.asmx  - Metodo: login - ", e);
            }

            return(infoUtenteAmm);
        }
Beispiel #10
0
        /// <summary>
        /// Modifica password utente
        /// </summary>
        /// <param name="newPassword"/></param>
        /// <param name="utente"></param>
        ///// <returns></returns>
        public DocsPaVO.Validations.ValidationResultInfo ChangeUserPwd(DocsPaVO.utente.UserLogin user, string oldPassword)
        {
            DocsPaVO.Validations.ValidationResultInfo result = new DocsPaVO.Validations.ValidationResultInfo();

            DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti();
            if (!utenti.CambiaPassword(user, oldPassword))
            {
                result.BrokenRules.Add(new DocsPaVO.Validations.BrokenRule("ChangePassword_ERROR", "Errore nella modifica della password per il documentale HUMMINGBIRD", DocsPaVO.Validations.BrokenRule.BrokenRuleLevelEnum.Error));
            }

            result.Value = (result.BrokenRules.Count == 0);

            return(result);
        }
Beispiel #11
0
        internal IDMObjects.Library getFileNETLib(DocsPaVO.utente.UserLogin login)
        {
            logger.Debug("getFileNETLib");

            IDMObjects.Library oLibrary = new IDMObjects.Library();
            if (System.Web.HttpContext.Current.Application["SessionManager"] == null)
            {
                logger.Debug("prima di add context");
                HttpContext.Current.Application.Add("SessionManager", new IDMObjects.SessionManager());
            }
            logger.Debug("prima di set session manager");
            oLibrary.SessionManager = (IDMObjects.SessionManager)HttpContext.Current.Application["SessionManager"];
            logger.Debug("prima di getlib");
            oLibrary.Name = Personalization.getInstance(login.IdAmministrazione).getLibrary();;
            return(oLibrary);
        }
Beispiel #12
0
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="newPassword"></param>
        ///// <param name="userName"></param>
        ///// <returns></returns>
        //public static DocsPaVO.Validations.ValidationResultInfo ChangePassword(string newPassword, string userName, string idAmministrazione)
        //{
        //    DocsPaVO.Validations.ValidationResultInfo result = null;

        //    DocsPaVO.utente.Utente user = BusinessLogic.Utenti.UserManager.getUtente(userName, idAmministrazione);

        //    if (user != null)
        //    {
        //        result = ChangePassword(user, );
        //    }
        //    else
        //    {
        //        // Utente non trovato
        //        result = new DocsPaVO.Validations.ValidationResultInfo();
        //        result.BrokenRules.Add(new DocsPaVO.Validations.BrokenRule("USER_NOT_FOUND", string.Format("Utente '{0}' non trovato", userName), DocsPaVO.Validations.BrokenRule.BrokenRuleLevelEnum.Error));
        //        result.Value = false;
        //    }

        //    return result;
        //}

        ///// <summary>
        ///// </summary>
        ///// <param name="login"></param>
        ///// <param name="debug"></param>
        //public static bool cambiaPassword(DocsPaVO.utente.UserLogin user, string oldPassword)
        //{
        //    bool result = false;

        //    DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti();
        //    result = utenti.CambiaPassword(user, oldPassword);

        //    string esito = (result)?"OK":"errore!";
        //    logger.Debug("Funzione: Cambia password utente... esito: " + esito);

        //    if(result)
        //    {
        //        // gestione specifica per Filenet---------------------------------------------------------
        //        string oldPwd = string.Empty;
        //        string documentType = System.Configuration.ConfigurationManager.AppSettings["documentale"];
        //        if (documentType.ToUpper().Equals("FILENET"))
        //        {
        //            oldPwd = utenti.GetPasswordUserFilenet(user.userId);

        //            DocsPaDocumentale.Documentale.UserManager userManager = new DocsPaDocumentale.Documentale.UserManager(null, null);
        //            result = userManager.UpdateUserFilenet(user.userId, oldPwd, newPassword, string.Format("{0} {1}", user.cognome, user.nome), user.idAmministrazione);
        //            esito = (result)?"OK":"errore!";
        //            logger.Debug("segue: Cambia password utente su FILENET... esito: " + esito);
        //        }
        //        // fine filenet---------------------------------------------------------------------------
        //    }

        //    return result;
        //}

        public static DocsPaVO.utente.UserLogin VerificaUtente(string userName)
        {
            DataSet ds;

            logger.Debug("Verifica utente");
            DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti();
            ds = utenti.VerificaUtente(userName);
            if (ds.Tables[0].Rows.Count == 0)
            {
                return(null);
            }
            string idAmm     = ds.Tables[0].Rows[0]["ID_AMM"].ToString();
            string pwdUtente = "";             // ds.Tables[0].Rows[0]["USER_PASSWORD"].ToString();

            DocsPaVO.utente.UserLogin userLogin = new DocsPaVO.utente.UserLogin(userName, pwdUtente, idAmm);
            return(userLogin);
        }
Beispiel #13
0
        /// <summary>
        /// Modifica della password per l'utente
        /// </summary>
        /// <param name="newPassword"></param>
        /// <param name="user"></param>
        /// <returns></returns>
        public static DocsPaVO.Validations.ValidationResultInfo ChangePassword(DocsPaVO.utente.UserLogin user, string oldPassword)
        {
            DocsPaDocumentale.Documentale.UserManager userManager = new DocsPaDocumentale.Documentale.UserManager();

            DocsPaVO.Validations.ValidationResultInfo result = userManager.ChangeUserPwd(user, oldPassword);

            // Se l'esito è positivo...
            if (result.Value == true)
            {
                UserLog.UserLog.WriteLog(user.UserName, "0", "0",
                                         user.IdAmministrazione, "MODUSER", "0",
                                         string.Format("Password dell'utente {0} modificata dall'utente stesso",
                                                       user.UserName), DocsPaVO.Logger.CodAzione.Esito.OK, null);
            }

            return(result);
        }
Beispiel #14
0
        public string LoginToFileNet(DocsPaVO.utente.UserLogin userLogin, string gruppoFilenet)
        {
            logger.Debug("init login");

            string password = userLogin.Password;

            if (userLogin.Dominio != null && userLogin.Dominio.Length > 0)
            {
                DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti();
                password = utenti.GetPasswordUserFilenet(userLogin.SystemID, true);
            }

            string dst = "";

            IDMError.ErrorManager idmErrorManager = new IDMError.ErrorManager();

            try
            {
                IDMObjects.Library oLibrary;
                oLibrary = getFileNETLib(userLogin);
                logger.Debug("Library name=" + oLibrary.Name);
                if (oLibrary.Logon(userLogin.UserName, password, gruppoFilenet,
                                   IDMObjects.idmLibraryLogon.idmLogonOptNoUI
                                   //IDMObjects.idmLibraryLogon.idmLogonOptUseNetworkNoUI
                                   ))
                {
                    dst = oLibrary.LogonId.ToString();
                }
            }
            catch (Exception e)
            {
                string msg = e.Message;
                logger.Debug("msg errore in fileNetLogon = " + msg);
                for (int i = 1; i < idmErrorManager.Errors.Count; i++)
                {
                    msg += " " + idmErrorManager.Errors[i].Description;
                }
                throw new Exception(msg);
            }

            return(dst);
        }
Beispiel #15
0
        /// <summary>
        /// Funzione per effettuare login di un utente e impersonare un altro utente.
        /// </summary>
        /// <param name="userLogin">Oggetto con le informazioni da utilizzare per il login</param>
        /// <param name="userToImpersonate">User name dell'utente da impersonare</param>
        /// <returns>Info utente da utilizzare per effettuare delle operazioni impersonando un altro utente</returns>
        public static DocsPaVO.utente.InfoUtente LoginAndImpersonate(DocsPaVO.utente.UserLogin userLogin, String userToImpersonate)
        {
            // Risultato processo di login
            DocsPaVO.utente.UserLogin.LoginResult loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;

            // Indirizzo ip
            String ipAddress;

            // Login classico
            DocsPaVO.utente.Utente user = loginMethod(userLogin, out loginResult, true, userLogin.SessionId, out ipAddress);

            // Se il risultato non è OK, viene sollevata un'eccezione
            if (loginResult != DocsPaVO.utente.UserLogin.LoginResult.OK)
            {
                throw new ApplicationException(loginResult.ToString());
            }

            // Impersonificazione con l'utente userToImpersonate
            return(Impersonate(userToImpersonate));
        }
Beispiel #16
0
 /// <summary>
 /// Effettua il login di un utente amministratore
 /// </summary>
 /// <param name="utente"></param>
 /// <param name="loginResult"></param>
 /// <returns></returns>
 public bool LoginAdminUser(DocsPaVO.utente.UserLogin userLogin, bool forceLogin, out DocsPaVO.amministrazione.InfoUtenteAmministratore utente, out DocsPaVO.utente.UserLogin.LoginResult loginResult)
 {
     return(this.Instance.LoginAdminUser(userLogin, forceLogin, out utente, out loginResult));
 }
Beispiel #17
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="idPeople"></param>
 /// <returns></returns>
 public static bool isUtenteDominioOrLdap(DocsPaVO.utente.UserLogin userLogin)
 {
     return(isUtenteDominio(userLogin.SystemID) ||
            DocsPaLdapServices.LdapUserConfigurations.UserCanConnectToLdap(userLogin.UserName));
 }
Beispiel #18
0
        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 = new DocsPaVO.utente.Utente();
            loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;
            ipaddress   = string.Empty;

            try
            {
                // Ricerca dell'utente in amministrazione
                if (string.IsNullOrEmpty(objLogin.IdAmministrazione))
                {
                    ArrayList listaAmmin = BusinessLogic.Utenti.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;
                        }
                    }
                    if (listaAmmin == null)
                    {
                        logger.Debug("Attenzione, la query S_People in GetIdAmmUtente non ha dato alcun risultato.");
                    }
                }

                // Se l'amministrazione è stata impostata
                if (!string.IsNullOrEmpty(objLogin.IdAmministrazione))
                {
                    utente = BusinessLogic.Utenti.UserManager.getUtente(objLogin.UserName, objLogin.IdAmministrazione);

                    utente.ruoli   = BusinessLogic.Utenti.UserManager.getRuoliUtente(utente.idPeople);
                    utente.dominio = BusinessLogic.Utenti.Login.getDominio(utente.idPeople);

                    DocsPaDocumentale.Documentale.UserManager userManager = new DocsPaDocumentale.Documentale.UserManager();
                    utente.dst = userManager.GetSuperUserAuthenticationToken();

                    if (utente.ruoli.Count == 0)
                    {
                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.NO_RUOLI;
                        utente      = null;
                    }
                }
            }
            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);
        }
Beispiel #19
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);
        }
Beispiel #20
0
 /// <summary>
 /// esecuzione della login a docspa
 /// </summary>
 /// <param name="objLogin">oggetto DocsPaVO.utente.UserLogin</param>
 /// <param name="forzaLogin">true o false</param>
 /// <returns>DocsPaVO.utente.UserLogin.LoginResult</returns>
 private DocsPaVO.utente.UserLogin.LoginResult ExecuteLogin(DocsPaVO.utente.UserLogin objLogin, bool forzaLogin)
 {
     this._utente    = null;
     this._idAddress = null;
     return(this._ws.Login(objLogin, out this._utente, forzaLogin, this._sessionIdWS, out this._idAddress));
 }
Beispiel #21
0
 /// <summary>
 /// Modifica password utente
 /// </summary>
 /// <param name="newPassword"/></param>
 /// <param name="utente"></param>
 ///// <returns></returns>
 public DocsPaVO.Validations.ValidationResultInfo ChangeUserPwd(DocsPaVO.utente.UserLogin user, string oldPassword)
 {
     return(this.Instance.ChangeUserPwd(user, oldPassword));
 }
Beispiel #22
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="utente"></param>
 /// <param name="loginResult"></param>
 /// <returns></returns>
 public bool LoginUser(DocsPaVO.utente.UserLogin userLogin, out DocsPaVO.utente.Utente utente, out DocsPaVO.utente.UserLogin.LoginResult loginResult)
 {
     return(this.Instance.LoginUser(userLogin, out utente, out loginResult));
 }
Beispiel #23
0
        /// <summary>
        /// Effettua il login di un utente
        /// </summary>
        /// <param name="utente">Oggetto Utente connesso</param>
        /// <returns>True = OK; False = Si è verificato un errore</returns>
        public bool LoginUser(DocsPaVO.utente.UserLogin userLogin, out DocsPaVO.utente.Utente utente, out DocsPaVO.utente.UserLogin.LoginResult loginResult)
        {
            bool result = false;

            utente      = null;
            loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK;

            try
            {
                string name     = string.Empty;
                string password = string.Empty;

                if (!string.IsNullOrEmpty(userLogin.UserName))
                {
                    name = userLogin.UserName;
                }

                if (!string.IsNullOrEmpty(userLogin.Password))
                {
                    password = userLogin.Password;
                }

                //ANAS modifiche per integrazione con il portale
                if (!string.IsNullOrEmpty(userLogin.DST))
                {
                    DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti();
                    utente     = utenti.GetUtente(name, userLogin.IdAmministrazione);
                    utente.dst = userLogin.DST;
                    //luluciani 11/03/2008 dopo rilascio 3.7.5 con bug su portale in anas.
                    result = true;
                }
                else
                {
                    DocsPaDB.Query_DocsPAWS.Utenti user = new DocsPaDB.Query_DocsPAWS.Utenti();

                    result = user.IsUtenteDisabled(userLogin.UserName, userLogin.IdAmministrazione);

                    if (result)
                    {
                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.DISABLED_USER;
                        utente      = null;
                        result      = false;
                    }
                    else
                    {
                        string library = this.GetLibrary(userLogin.IdAmministrazione);

                        DocsPaDocumentale_HUMMINGBIRD.HummingbirdLib.Login login = new DocsPaDocumentale_HUMMINGBIRD.HummingbirdLib.Login(0, library, name, password);
                        login.Execute();

                        if (login.GetErrorCode() != 0)
                        {
                            result      = false;
                            loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;
                        }
                        else
                        {
                            DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti();
                            utente     = utenti.GetUtente(name, userLogin.IdAmministrazione);
                            utente.dst = login.GetDST();
                            result     = true;
                        }
                    }
                }
            }
            catch (Exception exception)
            {
                logger.Error("Errore nella login.", exception);
                result = false;
                utente = null;
            }

            return(result);
        }
Beispiel #24
0
        /// <summary>
        /// Effettua il login di un utente amministratore
        /// </summary>
        /// <param name="utente"></param>
        /// <param name="loginResult"></param>
        /// <returns></returns>
        public bool LoginAdminUser(DocsPaVO.utente.UserLogin userLogin, bool forceLogin, out DocsPaVO.amministrazione.InfoUtenteAmministratore utente, out DocsPaVO.utente.UserLogin.LoginResult loginResult)
        {
            bool retValue = false;

            utente      = null;
            loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;

            AdminPasswordConfig pwdConfig = new AdminPasswordConfig();

            DocsPaDB.Query_DocsPAWS.Amministrazione amministrazioneDb = new DocsPaDB.Query_DocsPAWS.Amministrazione();

            // Verifica se è supportata la gestione delle configurazioni password (con supporto per encryption)
            if (pwdConfig.IsSupportedPasswordConfig())
            {
                // Verifica della validità delle credenziali utente
                if (DocsPaPwdServices.UserPasswordServices.IsValidForLogon(userLogin.UserName, userLogin.Password))
                {
                    // Reperimento metadati dell'utente amministratore (con gestione password criptate)
                    utente = amministrazioneDb.GetDatiAmministratoreEncrypted(userLogin.UserName, userLogin.Password);
                }
            }
            else
            {
                // Reperimento metadati dell'utente amministratore (senza gestione password criptate)
                utente = amministrazioneDb.GetDatiAmministratore(userLogin.UserName);
            }

            if (utente == null)
            {
                // Utente non riconosciuto
                loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;

                logger.Debug(string.Format("Utente {0} non riconosciuto", userLogin.UserName));
            }
            else
            {
                bool userAlreadyConnected;

                // Creazione token di autenticazione
                utente.dst = this.CreateUserToken();

                // Connessione come utente amministratore
                if (!amministrazioneDb.LoginAmministratore(utente, userLogin.IPAddress, userLogin.SessionId, forceLogin, out userAlreadyConnected))
                {
                    utente.dst = null;

                    if (userAlreadyConnected)
                    {
                        // Utente già connesso
                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.USER_ALREADY_LOGGED_IN;
                    }
                    else
                    {
                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;
                    }
                }
                else
                {
                    retValue    = true;
                    loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK;
                }
            }

            return(retValue);
        }
Beispiel #25
0
        /// <summary>
        /// Effettua il login di un utente
        /// </summary>
        /// <param name="utente">Oggetto Utente connesso</param>
        /// <returns>True = OK; False = Si è verificato un errore</returns>
        public bool LoginUser(DocsPaVO.utente.UserLogin userLogin, out DocsPaVO.utente.Utente utente, out DocsPaVO.utente.UserLogin.LoginResult loginResult)
        {
            bool result = true;

            utente      = null;
            loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK;

            try
            {
                DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti();

                string name     = System.String.Empty;
                string password = System.String.Empty;
                string idAmm    = null;

                if (userLogin.UserName != null)
                {
                    name = userLogin.UserName;
                }
                if (userLogin.Password != null)
                {
                    password = userLogin.Password;
                }
                idAmm = userLogin.IdAmministrazione;

                string peopleId = string.Empty;

                if (utenti.IsUtenteDisabled(userLogin.UserName, idAmm))
                {
                    loginResult = DocsPaVO.utente.UserLogin.LoginResult.DISABLED_USER;
                    result      = false;
                }

                //verifica userId su tabella utenti
                if (result && !utenti.UserLogin(out peopleId, name, idAmm, userLogin.Modulo))
                {
                    loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;
                    result      = false;
                }

                if (result && !string.IsNullOrEmpty(peopleId))
                {
                    string utenteDominio;

                    userLogin.SystemID = peopleId;

                    //verifica se deve bisogna eseguire l'autenticazione su dominio;
                    utenti.GetDominio(out utenteDominio, peopleId);

                    if (!string.IsNullOrEmpty(utenteDominio))
                    {
                        string[] arr = this.separaDominio(utenteDominio);
                        if (arr.GetLength(0) < 2)
                        {
                            loginResult = DocsPaVO.utente.UserLogin.LoginResult.APPLICATION_ERROR;
                            result      = false;
                            logger.Debug("Firma dello user sul dominio non valida.");
                        }

                        if (result)
                        {
                            string userName = arr[1];
                            string dominio  = arr[0];
                            userLogin.Dominio = dominio;

                            //esegue l'autenticazione su dominio;
                            if (!this.loginOnDomain(dominio, userName, password))
                            {
                                loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;
                                result      = false;
                                logger.Debug("Utente non autenticato sul dominio");
                            }
                        }
                    }
                    else
                    {
                        //autenticazione completa su tabella utenti
                        if (!utenti.UserLogin(out peopleId, name, password, idAmm, userLogin.Modulo))
                        {
                            loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;
                            result      = false;
                            logger.Debug("Utente non trovato");
                        }
                    }

                    if (!string.IsNullOrEmpty(peopleId))
                    {
                        utente = utenti.GetUtente(name, userLogin.IdAmministrazione);
                    }
                    else
                    {
                        result = false;
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Debug("Errore nella login.", ex);
                result = false;
                utente = null;
            }

            if (result)
            {
                string dst = string.Empty;

                try
                {
                    string gruppoFilenet = ConfigurationManager.AppSettings["FNET_userGroup"].ToString();

                    if (string.IsNullOrEmpty(gruppoFilenet))
                    {
                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.APPLICATION_ERROR;
                        result      = false;
                        logger.Debug("Gruppo Filenet non indicato");
                    }
                    else
                    {
                        dst           = LoginToFileNet(userLogin, gruppoFilenet);
                        result        = true;
                        utente.dst    = dst;
                        userLogin.DST = dst;
                    }
                }
                catch (Exception e)
                {
                    if (e.Message == "Non essendo abilitato, l'utente non può connettersi ai servizi del documento IDM.")
                    {
                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.DISABLED_USER;
                    }
                    logger.Debug("Errore nella login Filenet", e);
                    utente = null;
                    result = false;
                }
            }

            return(result);
        }
Beispiel #26
0
        /// <summary>
        /// Effettua il login di un utente
        /// </summary>
        /// <param name="utente">Oggetto Utente connesso</param>
        /// <returns>True = OK; False = Si è verificato un errore</returns>
        public bool LoginUser(DocsPaVO.utente.UserLogin userLogin, out DocsPaVO.utente.Utente utente, out DocsPaVO.utente.UserLogin.LoginResult loginResult)
        {
            bool result = true;

            utente      = null;
            loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK;

            try
            {
                DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti();

                string name     = System.String.Empty;
                string password = System.String.Empty;
                int    idAmm    = 0;

                if (!string.IsNullOrEmpty(userLogin.UserName))
                {
                    name = userLogin.UserName;
                }
                if (!string.IsNullOrEmpty(userLogin.Password))
                {
                    password = userLogin.Password;
                }
                if (!string.IsNullOrEmpty(userLogin.IdAmministrazione))
                {
                    idAmm = Convert.ToInt32(userLogin.IdAmministrazione);
                }

                if (utenti.IsUtenteDisabled(userLogin.UserName, userLogin.Modulo))
                {
                    loginResult = DocsPaVO.utente.UserLogin.LoginResult.DISABLED_USER;
                    result      = false;
                    logger.Debug("Utente disabilitato");
                }

                //verifica userId su tabella utenti
                string peopleId = string.Empty;

                if (result && !utenti.UserLogin(out peopleId, name, idAmm.ToString(), userLogin.Modulo))
                {
                    loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;
                    result      = false;
                    logger.Debug("Utente sconosciuto");
                }

                if (result && !string.IsNullOrEmpty(peopleId))
                {
                    //controlla se deve eseguire la login usando il 'token'
                    if (!string.IsNullOrEmpty(userLogin.Token))
                    {
                        //esegue l'autenticazione con token;
                        string message = string.Empty;

                        if (!Documentale.SSOLogin.loginWithToken(userLogin.Token, out message))
                        {
                            result      = false;
                            loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;
                            logger.Debug("Utente non autenticato con token. --" + message);
                        }
                    }
                    else
                    {
                        if (DocsPaUtils.Security.SSOAuthTokenHelper.IsAuthToken(userLogin.Password))
                        {
                            try
                            {
                                // Verifica la validità del token di autenticazione
                                string token = DocsPaUtils.Security.SSOAuthTokenHelper.Restore(userLogin.UserName, userLogin.Password);

                                // Il token è l'id della sessione utente:
                                // se nella dpa_login è già stata assegnata una sessione con quest'id, il token non è valido
                                result = true;
                            }
                            catch (Exception ex)
                            {
                                logger.Debug("Errore nell'autenticazione dell'utente tramite Token Single Sign On", ex);
                                loginResult = DocsPaVO.utente.UserLogin.LoginResult.APPLICATION_ERROR;
                                result      = false;
                            }
                        }
                        else
                        {
                            // Verifica se l'utente è configurato per connettersi ad un archivio LDAP
                            if (DocsPaLdapServices.LdapUserConfigurations.UserCanConnectToLdap(userLogin.UserName))
                            {
                                // Autenticazione utente in LDAP
                                DocsPaLdapServices.Core.BaseLdapUserServices ldapServices = DocsPaLdapServices.Core.LdapUserServicesFactory.GetConfiguredInstance(userLogin.IdAmministrazione);

                                // Reperimento del nome dell'utente corrispondente in LDAP
                                string userNameLdap = DocsPaLdapServices.LdapUserConfigurations.GetLdapUserConfigByName(userLogin.UserName).LdapIdSync;

                                if (!ldapServices.AuthenticateUser(userNameLdap, userLogin.Password))
                                {
                                    result      = false;
                                    loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;
                                    logger.Debug("Utente non valido o non trovato");
                                }
                            }
                            else
                            {
                                string utenteDominio;

                                //verifica se deve bisogna eseguire l'autenticazione su dominio;
                                utenti.GetDominio(out utenteDominio, peopleId);

                                if (!string.IsNullOrEmpty(utenteDominio))
                                {
                                    string[] arr = this.separaDominio(utenteDominio);

                                    if (arr.GetLength(0) < 2)
                                    {
                                        result      = false;
                                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.APPLICATION_ERROR;
                                        logger.Debug("Firma dell'utente sul dominio non valida.");
                                    }

                                    string userName = arr[1];
                                    string dominio  = arr[0];

                                    //esegue l'autenticazione su dominio;
                                    if (result && !this.loginOnDomain(dominio, userName, password))
                                    {
                                        result      = false;
                                        loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;
                                        logger.Debug("Utente non autenticato sul dominio");
                                    }
                                }
                                else
                                {
                                    AdminPasswordConfig pwdConfig = new AdminPasswordConfig();
                                    if (pwdConfig.IsSupportedPasswordConfig())
                                    {
                                        // Nuova gestione password
                                        logger.Debug("inizio controllo se passowrd è valida");
                                        if (!DocsPaPwdServices.UserPasswordServices.IsValidForLogon(name, password))
                                        {
                                            logger.Debug("la passowrd è differente da quella registrata.");
                                            result      = false;
                                            loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;
                                            logger.Debug("Utente non valido o non trovato");
                                        }

                                        if (userLogin != null && userLogin.Modulo != null &&
                                            DocsPaUtils.Moduli.ModuliAuthManager.IsModuloCentroServizi(userLogin.Modulo))
                                        {
                                            //Se accedo dal centro servizi con un utente abilitato solo al centro servizi
                                        }
                                        else
                                        {
                                            // Verifica se è attiva la gestione delle scadenze password
                                            if (result && DocsPaPwdServices.UserPasswordServices.PasswordExpirationEnabled(name))
                                            {
                                                // Verifica se è presente la password predefinita assegnata dall'amministratore
                                                if (DocsPaPwdServices.UserPasswordServices.IsPasswordExpired(name))
                                                {
                                                    // Se la password è scaduta, richiede l'immissione di una nuova password
                                                    result      = false;
                                                    loginResult = DocsPaVO.utente.UserLogin.LoginResult.PASSWORD_EXPIRED;
                                                    logger.Debug("La password definita per l'utente è scaduta");
                                                }
                                            }
                                        }
                                    }
                                    else
                                    {
                                        // Vecchia gestione password, se il documentale non la supporta
                                        //autenticazione completa su tabella utenti
                                        if (!utenti.UserLogin(out peopleId, name, password, idAmm.ToString()))
                                        {
                                            result      = false;
                                            loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER;
                                            logger.Debug("Utente non valido o non trovato");
                                        }
                                    }
                                }
                            }
                        }
                    }

                    if (result)
                    {
                        // Reperimento metadati dell'utente
                        utente = utenti.GetUtente(name, userLogin.IdAmministrazione, userLogin.Modulo);

                        // Associazione token di autenticazione
                        utente.dst = this.CreateUserToken();
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Debug("Errore nella login.", ex);
                result = false;
                utente = null;
            }

            return(result);
        }