/// <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)); }
/// <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); }
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); }
/// <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); }
/// <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); }
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); }
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); }
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()); }
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); }
/// <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); }
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); }
///// <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); }
/// <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); }
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); }
/// <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)); }
/// <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)); }
/// <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)); }
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); }
/// <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); }
/// <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)); }
/// <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)); }
/// <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)); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }