/// <summary> /// Modifica password utente /// </summary> /// <param name="oldPassword"/></param> /// <param name="user"></param> ///// <returns></returns> public ValidationResultInfo ChangeUserPwd(DocsPaVO.utente.UserLogin user, string oldPassword) { ValidationResultInfo retValue = new ValidationResultInfo(); retValue.Value = false; retValue.BrokenRules.Add(new BrokenRule("CHANGE_PWD_NOT_SUPPORTED", "Cambio password non supportato dal documentale CDC", BrokenRule.BrokenRuleLevelEnum.Error)); return(retValue); }
/// <summary> /// Impostazione di una nuova password per l'utente /// </summary> /// <param name="idAmministrazione"></param> /// <param name="userId"></param> /// <param name="password"></param> /// <param name="isAdminPassword"></param> /// <returns></returns> public static ValidationResultInfo SetPassword(DocsPaVO.utente.UserLogin user, bool isAdminPassword) { int idAmm = 0; if (!string.IsNullOrEmpty(user.IdAmministrazione)) { idAmm = Convert.ToInt32(user.IdAmministrazione); } return(SetPassword(idAmm, user.UserName, user.Password, isAdminPassword, false, user.Modulo)); }
/// <summary> /// Login al sistema documentale /// </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) { bool retValue = false; utente = null; loginResult = UserLogin.LoginResult.UNKNOWN_USER; try { utente = new Utente(); CorteContentServices.UserCredentialsRequestType userCred = new CorteContentServices.UserCredentialsRequestType(); CorteContentServices.ResultType result = new CorteContentServices.ResultType(); userCred.userCredentials = new CorteContentServices.UserCredentialsType(); userCred.userCredentials.userId = userLogin.UserName; userCred.userCredentials.password = userLogin.Password; result = this.WsUserInstance.Login(userCred); if (OCSUtils.isValidServiceResult(result)) { //definizione del dst // il dst tiene in memoria le informazioni necessarie per l'autenticazione dell'utente // ci sono operazioni in cui non viene utilizzato l'utente applicativo ma è necessario // utilizzare le credenziali effettive dell'utente che si connette al sistema. // Per esempio nelle ricerche utente = new Utente(); utente.dst = this.GetAuthenticationToken(userLogin.UserName, userLogin.Password); retValue = true; loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK; logger.Debug(string.Format("OCS.LoginUser: utente {0} connesso", userLogin.UserName)); } else { retValue = false; utente = null; loginResult = UserLogin.LoginResult.UNKNOWN_USER; logger.Debug(string.Format("Errore in OCS.Login:\n{0}", result.message)); } } catch (Exception ex) { retValue = false; utente = null; loginResult = UserLogin.LoginResult.UNKNOWN_USER; logger.Error(string.Format("Errore in OCS.Login:\n{0}", ex.ToString())); } return(retValue); }
/// <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; using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) { result = this.UserManagerETDOCS.ChangeUserPwd(user, oldPassword); if (result.Value) { transactionContext.Complete(); } } return(result); }
public DocsPaVO.utente.Utente Login(DocsPaVO.utente.UserLogin userLogin) { DocsPaVO.utente.Utente utente = null; string idWebSession = string.Empty; string ipAddress = string.Empty; DocsPaVO.utente.UserLogin.LoginResult loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK; try { utente = BusinessLogic.Utenti.Login.loginMethod(userLogin, out loginResult, true, idWebSession, out ipAddress); } catch (Exception e) { logger.Debug("Hermes - metodo: Login.", e); } return(utente); }
/// <summary> /// Connessione dell'utente al sistema documentale /// </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) { try { // Connessione al sistema ETDOCS bool connected = this.UserManagerETDOCS.LoginUser(userLogin, out utente, out loginResult); return(connected); } 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> /// 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.UserManagerOCS.ChangeUserPwd(user, oldPassword)); //DocsPaVO.Validations.ValidationResultInfo result = null; //using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext()) //{ // result = this.UserManagerETDOCS.ChangeUserPwd(user, oldPassword); // if (result.Value) // result = this.UserManagerOCS.ChangeUserPwd(user, oldPassword); // if (result.Value) // transactionContext.Complete(); //} //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) { utente = null; loginResult = UserLogin.LoginResult.UNKNOWN_USER; try { // Connessione al sistema ETDOCS bool connected = this.UserManagerETDOCS.LoginAdminUser(userLogin, forceLogin, out utente, out loginResult); if (connected) { DocsPaVO.amministrazione.InfoUtenteAmministratore utenteDTCM; // Connessione al sistema DOCUMENTUM connected = this.UserManagerDocumentum.LoginAdminUser(userLogin, forceLogin, out utenteDTCM, out loginResult); // Assegnazione dell'id di sessione DOCUMENTUM if (connected) { // Aggiornamento valore token di autenticazione in ETDOCS connected = this.UpdateUserToken(utenteDTCM.dst, utente.dst); if (connected) { utente.dst = utenteDTCM.dst; } else { utente.dst = null; } } } return(connected); } 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> /// Modifica password utente /// </summary> /// <param name="oldPassword"/></param> /// <param name="user"></param> ///// <returns></returns> public ValidationResultInfo ChangeUserPwd(DocsPaVO.utente.UserLogin user, string oldPassword) { ValidationResultInfo retValue = new ValidationResultInfo(); try { // La password deve essere modificata con le credenziali di superuser IObjectService objectService = DctmServiceFactory.GetServiceInstance <IObjectService>(UserManager.ImpersonateSuperUser()); ObjectIdentity identity = Dfs4DocsPa.getUserIdentityByName(TypeUtente.NormalizeUserName(user.UserName)); DataObject userDataObject = new DataObject(identity, ObjectTypes.UTENTE); userDataObject.Properties.Set <string>("user_password", user.Password); DataPackage dataPackage = new DataPackage(userDataObject); dataPackage = objectService.Update(dataPackage, null); retValue.Value = (dataPackage.DataObjects.Count > 0); if (!retValue.Value) { throw new ApplicationException("Password non aggiornata"); } else { RepositoryIdentity newIdentity = DctmRepositoryIdentityHelper.GetIdentity(DctmConfigurations.GetRepositoryName(), user.UserName, user.Password, string.Empty); user.DST = DctmRepositoryIdentityHelper.CreateAuthenticationToken(newIdentity); logger.Debug(string.Format("Documentum.ChangePassword: password modificata per l'utente {0}", user.UserName)); } } catch (Exception ex) { logger.Debug(string.Format("Errore in Documentum.ChangePassword:\n{0}", ex.ToString())); retValue.BrokenRules.Add(new BrokenRule("ChangePassword_ERROR", "Errore nella modifica della password per il documentale DOCUMENTUM", DocsPaVO.Validations.BrokenRule.BrokenRuleLevelEnum.Error)); } retValue.Value = (retValue.BrokenRules.Count == 0); return(retValue); }
/// <summary> /// Task di sincronizzazione degli utenti in docspa con gli utenti in ldap per l'amministrazione richiesta /// </summary> /// <param name="userId"></param> /// <param name="password"></param> /// <param name="adminCode"></param> /// <returns></returns> public static LdapSyncronizationResponse SyncronizeLdapUsers(string userId, string password, string adminCode) { LdapSyncronizationResponse response = null; DocsPaVO.utente.UserLogin userLogin = new DocsPaVO.utente.UserLogin(); userLogin.UserName = userId; userLogin.Password = password; DocsPaVO.amministrazione.InfoUtenteAmministratore infoUtente; DocsPaVO.amministrazione.EsitoOperazione result = BusinessLogic.Amministrazione.AmministraManager.LoginAmministratoreProfilato(userLogin, true, out infoUtente); if (result.Codice == 0) { string idAdmin = string.Empty; using (DocsPaDB.Query_DocsPAWS.Amministrazione adminDbServices = new DocsPaDB.Query_DocsPAWS.Amministrazione()) idAdmin = adminDbServices.GetIDAmm(adminCode); if (string.IsNullOrEmpty(idAdmin)) { response = new LdapSyncronizationResponse(); response.User = userId; response.ErrorDetails = string.Format("Nessuna amministrazione identificata con il codice '{0}'", adminCode); } else { LdapSyncronizationRequest request = new LdapSyncronizationRequest { InfoUtente = infoUtente, IdAmministrazione = idAdmin }; response = SyncronizeLdapUsers(request); } } else { response = new LdapSyncronizationResponse(userId, adminCode); response.ErrorDetails = result.Descrizione; } return(response); }
/// <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 = UserLogin.LoginResult.UNKNOWN_USER; DocsPaVO.utente.Utente utenteDocsPa; retValue = (this.LoginUser(userLogin, out utenteDocsPa, out loginResult)); if (retValue) { loginResult = UserLogin.LoginResult.OK; utente = new DocsPaVO.amministrazione.InfoUtenteAmministratore(); utente.dst = utenteDocsPa.dst; } return(retValue); }
/// <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 { // Connessione al sistema ETDOCS bool connected = this.UserManagerETDOCS.LoginAdminUser(userLogin, forceLogin, out utente, out loginResult); return(connected); } 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> /// Connessione dell'utente al sistema documentale /// </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) { try { // Connessione al sistema ETDOCS bool connected = this.UserManagerETDOCS.LoginUser(userLogin, out utente, out loginResult); if (connected) { DocsPaVO.utente.Utente utenteDTCM; // Completamento dati oggetto UserLogin con i metadati dell'utente connesso userLogin.SystemID = utente.idPeople; userLogin.IdAmministrazione = utente.idAmministrazione; // Connessione al sistema DOCUMENTUM connected = this.UserManagerDocumentum.LoginUser(userLogin, out utenteDTCM, out loginResult); // Assegnazione dell'id di sessione DOCUMENTUM if (connected) { utente.dst = utenteDTCM.dst; } else { utente.dst = null; } } return(connected); } 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); } }
public static DocsPaVO.utente.Utente esercitaDelega(DocsPaVO.utente.InfoUtente infoUtente, DocsPaVO.utente.UserLogin objLogin, string webSessionId, string id_delega, string idRuoloDelegante, out DocsPaVO.utente.UserLogin.LoginResult loginResult) { DocsPaVO.utente.Utente utente = null; loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK; try { //INC000001112977 PAT gestione deleghe //Dismetto le deleghe rimaste in esercizio DocsPaDB.Query_DocsPAWS.Deleghe deleghe = new DocsPaDB.Query_DocsPAWS.Deleghe(); deleghe.DismettiDelegheInEsercizio(infoUtente); // Get User // ricostruzione informazioni utente delegante logger.DebugFormat("username {0} idAmm {1}", objLogin.UserName, objLogin.IdAmministrazione); utente = BusinessLogic.Utenti.UserManager.getUtente(objLogin.UserName, objLogin.IdAmministrazione); if (utente == null) { logger.Error("utente è null"); } // impostazione token di autenticazione DocsPaDocumentale.Documentale.UserManager userManager = new DocsPaDocumentale.Documentale.UserManager(); utente.dst = userManager.GetSuperUserAuthenticationToken(); // Impostazione id sessione utente utente.sessionID = webSessionId; //Verifico che l'utente delegante non sia connesso //si verifica la tabella DPA_LOGIN per unicità della connessione //la funzione torna True se l'utente è già collegato DocsPaDB.Query_DocsPAWS.Utenti gestioneUtenti = new DocsPaDB.Query_DocsPAWS.Utenti(); if (!gestioneUtenti.CheckUserLogin(utente.userId, utente.idAmministrazione)) { if (idRuoloDelegante == "0") { //L'utente delegato eredita tutti i ruoli del delegante utente.ruoli = BusinessLogic.Utenti.UserManager.getRuoliUtente(utente.idPeople); } else { ArrayList ruoli = BusinessLogic.Utenti.UserManager.getRuoliUtente(utente.idPeople); ArrayList listRuolo = new ArrayList(); foreach (DocsPaVO.utente.Ruolo ruolo in ruoli) { if (idRuoloDelegante.Equals(ruolo.systemId)) { listRuolo.Add(ruolo); } } utente.ruoli = listRuolo; } utente.dominio = getDominio(utente.idPeople); if (utente.ruoli.Count == 0) { loginResult = DocsPaVO.utente.UserLogin.LoginResult.NO_RUOLI; utente = null; } else { gestioneUtenti.LockUserLoginDelegato(utente.userId, utente.idAmministrazione, webSessionId, objLogin.IPAddress, utente.dst, infoUtente.userId, id_delega); loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK; } } else { //Utente delegante loggato: viene rimosso dalla dpa_login (cosidetta porcata) DocsPaDB.Query_DocsPAWS.Utenti dbUserManager = new DocsPaDB.Query_DocsPAWS.Utenti(); if (gestioneUtenti.UnlockUserLogin(utente.userId, utente.idAmministrazione, utente.sessionID)) { if (idRuoloDelegante == "0") { //L'utente delegato eredita tutti i ruoli del delegante utente.ruoli = BusinessLogic.Utenti.UserManager.getRuoliUtente(utente.idPeople); } else { ArrayList ruoli = BusinessLogic.Utenti.UserManager.getRuoliUtente(utente.idPeople); ArrayList listRuolo = new ArrayList(); foreach (DocsPaVO.utente.Ruolo ruolo in ruoli) { if (idRuoloDelegante.Equals(ruolo.systemId)) { listRuolo.Add(ruolo); } } utente.ruoli = listRuolo; } utente.dominio = getDominio(utente.idPeople); if (utente.ruoli.Count == 0) { loginResult = DocsPaVO.utente.UserLogin.LoginResult.NO_RUOLI; utente = null; } else { gestioneUtenti.LockUserLoginDelegato(utente.userId, utente.idAmministrazione, webSessionId, objLogin.IPAddress, utente.dst, infoUtente.userId, id_delega); loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK; } } else { loginResult = DocsPaVO.utente.UserLogin.LoginResult.USER_ALREADY_LOGGED_IN; utente = null; } } } catch (Exception e) { logger.ErrorFormat("msg {0} stk {1} ", e.Message, e.StackTrace); loginResult = DocsPaVO.utente.UserLogin.LoginResult.APPLICATION_ERROR; logger.Debug("Errore nella gestione degli utenti (loginMethod)"); utente = null; } return(utente); }
/// <summary> /// Login al sistema documentale /// </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) { bool retValue = false; utente = null; loginResult = UserLogin.LoginResult.UNKNOWN_USER; try { string userName = TypeUtente.NormalizeUserName(userLogin.UserName); string userPassword = string.Empty; // Modifica 21-12-2012, recupero ticket documentum se login tramite token. //if (DocsPaServices.DocsPaQueryHelper.isUtenteDominioOrLdap(userLogin)) if (userLogin.SSOLogin) { // L'utente è agganciato in amministrazione ad un dominio, // pertanto viene richiamato il servizio documentum per la generazione del ticket di autenticazione userPassword = DctmTokenFactoryHelper.Generate(userName); } else { userPassword = userLogin.Password; } RepositoryIdentity identity = DctmServices.DctmRepositoryIdentityHelper.GetIdentity( DctmConfigurations.GetRepositoryName(), userName, userPassword, userLogin.Dominio); string token = DctmServices.DctmRepositoryIdentityHelper.CreateAuthenticationToken(identity); // Verifica validità credenziali if (this.VerifyCredentials(userName, token, out loginResult)) { utente = new Utente(); utente.dst = token; loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK; } //per LDAP oppure per SHIBBOLETH if (userLogin.SSOLogin) { utente.dst = UserManager.ImpersonateSuperUser(); } //FINE per LDAP oppure per SHIBBOLETH retValue = (loginResult == DocsPaVO.utente.UserLogin.LoginResult.OK); } catch (Exception ex) { retValue = false; utente = null; loginResult = UserLogin.LoginResult.UNKNOWN_USER; logger.Debug(string.Format("Errore in Documentum.Login:\n{0}", ex.ToString())); } return(retValue); }
/// <summary> /// Connessione dell'utente al sistema documentale /// </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) { 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; } 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 { // Connessione al sistema OCS DocsPaVO.utente.Utente utenteOCS; result = this.UserManagerOCS.LoginUser(userLogin, out utenteOCS, out loginResult); // Assegnazione dell'id di sessione OCS if (result) { DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti(); utente = utenti.GetUtente(name, userLogin.IdAmministrazione); utente.dst = utenteOCS.dst; } else { result = false; loginResult = DocsPaVO.utente.UserLogin.LoginResult.UNKNOWN_USER; } } } catch (Exception exception) { logger.Debug("Errore nella login.", exception); result = false; utente = null; } return(result); #region OLD /* OLD * try * { * // Connessione al sistema ETDOCS * bool connected = this.UserManagerETDOCS.LoginUser(userLogin, out utente, out loginResult); * * if (connected) * { * DocsPaVO.utente.Utente utenteOCS; * * // Connessione al sistema OCS * connected = this.UserManagerOCS.LoginUser(userLogin, out utenteOCS, out loginResult); * * // Assegnazione dell'id di sessione OCS * if (connected) * utente.dst = utenteOCS.dst; * } * * return connected; * } * 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); * } */ #endregion }
/// <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); } }
public static Services.Authentication.LogIn.LogInResponse LogIn(Services.Authentication.LogIn.LogInRequest request) { Services.Authentication.LogIn.LogInResponse response = new Services.Authentication.LogIn.LogInResponse(); try { DocsPaVO.utente.Utente utente = null; string idWebSession = string.Empty; string ipAddress = string.Empty; if (request != null && (string.IsNullOrEmpty(request.UserName) || string.IsNullOrEmpty(request.Password))) { throw new PisException("MISSING_PARAMETER"); } DocsPaVO.utente.UserLogin.LoginResult loginResult = DocsPaVO.utente.UserLogin.LoginResult.OK; DocsPaVO.utente.UserLogin login = new DocsPaVO.utente.UserLogin { UserName = request.UserName, Password = request.Password, }; utente = BusinessLogic.Utenti.Login.loginMethod(login, out loginResult, true, idWebSession, out ipAddress); if (utente == null) { //Utente non trovato throw new PisException("USER_NO_EXIST"); } // Giovanni Olivari - 06/11/2012 // Se l'utente non ha Ruoli viene generata un'eccezione prima di questo blocco di codice, // quindi arrivati qui posso essere sicuro di avere almeno un ruolo, prendo il primo della lista // DocsPaVO.utente.Ruolo ruolo = null; ruolo = (DocsPaVO.utente.Ruolo)utente.ruoli[0]; if (loginResult == DocsPaVO.utente.UserLogin.LoginResult.OK) { // Generazione del token di autenticazione response.AuthenticationToken = CreateAuthToken(utente, ruolo); BusinessLogic.Utenti.Login.logoff(utente.userId, utente.idAmministrazione, utente.dst); } else { throw new PisException("MISSING_PARAMETER"); } response.Success = true; } catch (PisException pisEx) { logger.ErrorFormat("PISException: {0}, {1}", pisEx.ErrorCode, pisEx.Description); response.Error = new Services.ResponseError { Code = pisEx.ErrorCode, Description = pisEx.Description }; response.Success = false; } catch (Exception ex) { logger.ErrorFormat("Eccezione Generica: APPLICATION_ERROR, {0}", ex.Message); response.Error = new Services.ResponseError { Code = "APPLICATION_ERROR", Description = ex.Message }; response.Success = false; } return(response); }