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