示例#1
0
        /// <summary>
        /// Reperimento dei dati per la gestione della password in amministrazione
        /// </summary>
        /// <returns></returns>
        public static PasswordConfigurations GetPasswordConfigurations(int idAmministrazione)
        {
            PasswordConfigurations config = null;

            if (idAmministrazione > 0)
            {
                using (DBProvider dbProvider = new DBProvider())
                {
                    DocsPaUtils.Query queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("PASSWORD_CONFIG_GET_DATA");
                    queryDef.setParam("idAmministrazione", " = " + idAmministrazione.ToString());

                    string commandText = queryDef.getSQL();
                    //Debugger.Write(commandText);
                    logger.Debug(commandText);
                    using (IDataReader reader = dbProvider.ExecuteReader(commandText))
                    {
                        if (reader.Read())
                        {
                            config = new PasswordConfigurations(reader);
                        }
                    }
                }
            }

            return(config);
        }
示例#2
0
        /// <summary>
        /// Impostazione di tutte le password come scadute per un'amministrazione
        /// </summary>
        /// <param name="amministrazione"></param>
        public static void ForzaScadenzaPassword(DocsPaVO.amministrazione.InfoAmministrazione amministrazione)
        {
            try
            {
                // 1. Creazione contesto transazionale per singola amministrazione
                using (DocsPaDB.TransactionContext transactionContext = new DocsPaDB.TransactionContext())
                {
                    // 2. Tutte le password per l'amministrazione vengono impostate come scadute

                    // 2a. Modifica delle configurazioni per la gestione delle password:
                    //  vengono rimossi i vincoli formali di validità
                    PasswordConfigurations pwdConfig = DocsPaPwdServices.AdminPasswordConfigServices.GetPasswordConfigurations(Convert.ToInt32(amministrazione.IDAmm));
                    pwdConfig.SpecialCharacters = null;
                    pwdConfig.MinLength         = 0;
                    pwdConfig.ExpirationEnabled = true; // Viene abilitata la scadenza password
                    pwdConfig.ValidityDays      = 30;
                    DocsPaPwdServices.AdminPasswordConfigServices.SavePasswordConfigurations(pwdConfig);
                    DocsPaPwdServices.AdminPasswordConfigServices.ExpireAllPassword(Convert.ToInt32(amministrazione.IDAmm));

                    // 3. Completamento della transazione
                    transactionContext.Complete();

                    Log.GetInstance(amministrazione).Write(string.Format("Tutte le password per l'amministrazione con codice '{0}' sono state impostate come scadute. I giorni di validità delle password sono '{1}'", amministrazione.Codice, pwdConfig.ValidityDays.ToString()), false);
                }
            }
            catch (Exception ex)
            {
                // Operazione annullata
                Log.GetInstance(amministrazione).Write(ex.Message, true);
            }
            finally
            {
                Log.GetInstance(amministrazione).Flush();
            }
        }
示例#3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="idAmministrazione"></param>
        /// <returns></returns>
        public PasswordConfigurations GetPasswordConfigurations(DocsPaVO.utente.InfoUtente infoUtente, int idAmministrazione)
        {
            // Inizializzazione oggetto configurations
            PasswordConfigurations pwdConfigurations = new PasswordConfigurations();

            pwdConfigurations.IdAmministrazione = idAmministrazione;
            pwdConfigurations.ExpirationEnabled = false;
            pwdConfigurations.ValidityDays      = 0;
            pwdConfigurations.MinLength         = 0;
            pwdConfigurations.SpecialCharacters = new char[0];
            return(pwdConfigurations);
        }
示例#4
0
 /// <summary>
 /// Impostazione della data di creazione della password
 /// per tutti gli utenti dell'amministrazione.
 /// <remarks>
 /// Regole per l'impostazione:
 ///     - l'aggiornamento viene effettuato solamente se il valore
 ///       per i giorni di validità è stato modificato
 ///     - se il numero di giorni impostato è 0, la scadenza
 ///       password è stata disabilitata, quindi per tutti gli utenti
 ///       verrà rimossa la data di creazione
 ///     - se il numero di giorni precedente a quello attuale era 0,
 ///       verrà aggiornata per tutti gli utenti la data di creazione
 /// </remarks>
 /// </summary>
 /// <param name="provider"></param>
 /// <param name="configurations"></param>
 /// <param name="oldConfigurations"></param>
 /// <returns></returns>
 private static void SetCreationDateAllUser(DBProvider dbProvider, PasswordConfigurations configurations, PasswordConfigurations oldConfigurations)
 {
     if (oldConfigurations.ValidityDays != configurations.ValidityDays)
     {
         if (configurations.ValidityDays == 0)
         {
             SetCreationDateAllUser(dbProvider, configurations.IdAmministrazione, false);
         }
         else if (oldConfigurations.ValidityDays == 0)
         {
             SetCreationDateAllUser(dbProvider, configurations.IdAmministrazione, true);
         }
     }
 }
示例#5
0
        //MEV utenti multi-amministrazione
        /// <summary>
        /// Reperimento dei dati per la gestione della password in amministrazione
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        internal static PasswordConfigurations GetPasswordConfigurations(string userId, string codAmm)
        {
            PasswordConfigurations config = null;

            using (DBProvider dbProvider = new DBProvider())
            {
                DocsPaUtils.Query queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("PASSWORD_CONFIG_GET_DATA_FROM_USER_ID_BY_AMM");
                queryDef.setParam("userId", userId);
                queryDef.setParam("codAmm", codAmm);

                string commandText = queryDef.getSQL();
                logger.Debug(commandText);
                using (IDataReader reader = dbProvider.ExecuteReader(commandText))
                {
                    if (reader.Read())
                    {
                        config = new PasswordConfigurations(reader);
                    }
                }
            }

            return(config);
        }
示例#6
0
        /// <summary>
        /// Save dei dati per la gestione delle password in amministrazione
        /// </summary>
        /// <param name="configurations"></param>
        /// <returns></returns>
        public static bool SavePasswordConfigurations(PasswordConfigurations configurations)
        {
            bool saved = false;

            using (DBProvider dbProvider = new DBProvider())
            {
                dbProvider.BeginTransaction();

                // Reperimento configurazioni precedenti
                PasswordConfigurations oldConfigurations = GetPasswordConfigurations(configurations.IdAmministrazione);

                DocsPaUtils.Query queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("PASSWORD_CONFIG_SET_DATA");

                if (configurations.ExpirationEnabled)
                {
                    queryDef.setParam("enablePasswordExpiration", "1");
                    queryDef.setParam("passwordExpirationDays", configurations.ValidityDays.ToString());
                }
                else
                {
                    queryDef.setParam("enablePasswordExpiration", "NULL");
                    queryDef.setParam("passwordExpirationDays", "NULL");
                }

                if (configurations.MinLength > 0)
                {
                    queryDef.setParam("passwordMinLength", configurations.MinLength.ToString());
                }
                else
                {
                    queryDef.setParam("passwordMinLength", "NULL");
                }

                if (configurations.SpecialCharacters != null && configurations.SpecialCharacters.Length > 0)
                {
                    queryDef.setParam("passwordSpecialChars", string.Format("'{0}'", new string(configurations.SpecialCharacters).Replace("'", "''")));
                }
                else
                {
                    queryDef.setParam("passwordSpecialChars", "NULL");
                }

                if (configurations.IdAmministrazione == -1)
                {
                    // System administrator
                    queryDef.setParam("idAmministrazione", " IS NULL");
                }
                else
                {
                    queryDef.setParam("idAmministrazione", " = " + configurations.IdAmministrazione.ToString());
                }

                string commandText = queryDef.getSQL();
                //Debugger.Write(commandText);
                logger.Debug(commandText);
                int rowsAffected;
                if (!dbProvider.ExecuteNonQuery(commandText, out rowsAffected))
                {
                    throw new ApplicationException(string.Format("Errore nell'aggiornamento delle configurazioni delle password. ID Amministrazione: {0}", configurations.IdAmministrazione.ToString()));
                }

                saved = (rowsAffected == 1);

                // Se il numero di giorni di validità è cambiato
                // per ogni utente dell'amministrazione
                // viene aggiornata la data di creazione della password
                if (saved)
                {
                    SetCreationDateAllUser(dbProvider, configurations, oldConfigurations);
                }

                dbProvider.CommitTransaction();
            }

            return(saved);
        }
示例#7
0
 /// <summary>
 /// Save dei dati per la gestione delle password in amministrazione
 /// </summary>
 /// <param name="configurations"></param>
 /// <returns></returns>
 public static bool SavePasswordConfigurations(PasswordConfigurations configurations)
 {
     return(DocsPaDB.Query_DocsPAWS.AdminPasswordConfig.SavePasswordConfigurations(configurations));
 }
示例#8
0
        /// <summary>
        /// Save dei dati per la gestione delle password in amministrazione
        /// </summary>
        /// <param name="infoUtente"></param>
        /// <param name="configurations"></param>
        /// <returns></returns>
        public static bool SavePasswordConfigurations(DocsPaVO.utente.InfoUtente infoUtente, PasswordConfigurations configurations)
        {
            DocsPaDocumentale.Documentale.AdminPasswordConfig pwdConfig = new DocsPaDocumentale.Documentale.AdminPasswordConfig();

            return(pwdConfig.SavePasswordConfigurations(infoUtente, configurations));
        }