/// <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) { utente = null; loginResult = UserLogin.LoginResult.UNKNOWN_USER; try { DocsPaVO.amministrazione.InfoUtenteAmministratore infoAdmin = null; using (DocsPaDB.Query_DocsPAWS.Amministrazione amministrazioneDb = new DocsPaDB.Query_DocsPAWS.Amministrazione()) { // Reperimento metadati dell'utente amministratore (senza gestione password criptate) infoAdmin = amministrazioneDb.GetDatiAmministratore(userLogin.UserName); if (infoAdmin != null) { // Connessione al sistema CDC se altro tipo di amministratore if (this.UserManagerOCS.LoginAdminUser(userLogin, forceLogin, out utente, out loginResult)) { // L'utente si è connesso con successo al sistema mediante i servizi forniti da CDC, // pertanto vengono fatte le opportune operazioni in etdocs per validare la connessione bool userAlreadyConnected; 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 { utente.idPeople = infoAdmin.idPeople; utente.tipoAmministratore = infoAdmin.tipoAmministratore; utente.nome = infoAdmin.nome; utente.cognome = infoAdmin.cognome; utente.idAmministrazione = infoAdmin.idAmministrazione; utente.idCorrGlobali = infoAdmin.idCorrGlobali; loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK; } } } else { loginResult = UserLogin.LoginResult.UNKNOWN_USER; } } return(loginResult == UserLogin.LoginResult.OK); } catch (Exception ex) { string errorMessage = string.Format("Errore nella login dell'utente al sistema documentale: {0}", ex.Message); logger.Debug(errorMessage); throw new ApplicationException(errorMessage, ex); } }
/// <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); }