예제 #1
0
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="idUser"></param>
        ///// <param name="ldapInfo"></param>
        //public static void SaveLdapUserConfig(string idUser, LdapConfig ldapInfo)
        //{
        //    using (DocsPaDB.TransactionContext transactionalContext = new DocsPaDB.TransactionContext())
        //    {
        //        // Verifica se l'integrazione con ldap è attivata
        //        LdapConfigurations.CheckForLdapIntegrationActivated();

        //        // Validazione dati di configurazione
        //        ValidateConfigurations(ldapInfo);

        //        DocsPaDB.Query_DocsPAWS.Ldap ldapDbServices = new DocsPaDB.Query_DocsPAWS.Ldap();

        //        ldapDbServices.SaveLdapUserConfig(idUser, ldapInfo);

        //        transactionalContext.Complete();
        //    }
        //}

        /// <summary>
        /// Verifica se un determinato utente può collegarsi ad un archivio LDAP
        /// </summary>
        /// <param name="infoUtente"></param>
        /// <param name="userName"></param>
        /// <returns></returns>
        public static bool UserCanConnectToLdap(string userName)
        {
            string idAmministrazioneAsString;

            using (DocsPaDB.Query_DocsPAWS.Utenti utentiDb = new DocsPaDB.Query_DocsPAWS.Utenti())
                utentiDb.GetIdAmmUtente(out idAmministrazioneAsString, userName);

            int idAmministrazione;

            Int32.TryParse(idAmministrazioneAsString, out idAmministrazione);

            if (idAmministrazione > 0)
            {
                // Solo gli utenti configurati in un amministrazione posso autenticarsi ad LDAP
                DocsPaVO.Ldap.LdapConfig configInfo = DocsPaLdapServices.LdapConfigurations.GetLdapConfig(idAmministrazioneAsString);

                DocsPaVO.Ldap.LdapUserConfig userConfigInfo = GetLdapUserConfigByName(userName);

                return(!string.IsNullOrEmpty(configInfo.ServerName) && !string.IsNullOrEmpty(configInfo.GroupDN) &&
                       userConfigInfo.LdapAuthenticated);
            }
            else
            {
                // Utente non associato ad un'amministrazione (es. SuperAdmin)
                return(false);
            }
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        private static int GetIdAmministrazione(string userId)
        {
            int idAmministrazione = ID_AMM_NULL;

            // Se non è stato immesso alcun valore per l'amministrazione,
            // è necessario reperire automaticamente l'id in base alla userid fornita
            DocsPaDB.Query_DocsPAWS.Utenti utenti = new DocsPaDB.Query_DocsPAWS.Utenti();
            ArrayList ammList;

            utenti.GetIdAmmUtente(out ammList, userId);

            if (ammList != null && ammList.Count == 1)
            {
                Int32.TryParse(ammList[0].ToString(), out idAmministrazione);
            }

            return(idAmministrazione);
        }