///// <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); } }
/// <summary> /// Reperimento delle informazioni per l'integrazione con ldap per una singola amministrazione /// </summary> /// <param name="idAmministrazione"></param> /// <returns></returns> public DocsPaVO.Ldap.LdapConfig GetLdapConfig(string idAmministrazione) { try { DocsPaVO.Ldap.LdapConfig info = null; using (DocsPaDB.DBProvider dbProvider = new DBProvider()) { DocsPaUtils.Query queryDef = DocsPaUtils.InitQuery.getInstance().getQuery("S_GET_LDAP_CONFIG"); queryDef.setParam("idAmm", idAmministrazione); string commandText = queryDef.getSQL(); logger.Debug(commandText); using (IDataReader reader = dbProvider.ExecuteReader(commandText)) { if (reader.Read()) { info = new LdapConfig(); info.ServerName = DocsPaUtils.Data.DataReaderHelper.GetValue <string>(reader, "SERVER_NAME", false); info.DomainUserName = DocsPaUtils.Data.DataReaderHelper.GetValue <string>(reader, "USER_NAME", true, string.Empty); info.GroupDN = DocsPaUtils.Data.DataReaderHelper.GetValue <string>(reader, "GROUP_DN", false); info.UserAttributes = new LdapUserAttributes(); info.UserAttributes.UserId = DocsPaUtils.Data.DataReaderHelper.GetValue <string>(reader, "USERID_ATTRIBUTE", true, string.Empty); info.UserAttributes.Email = DocsPaUtils.Data.DataReaderHelper.GetValue <string>(reader, "EMAIL_ATTRIBUTE", true, string.Empty); info.UserAttributes.Matricola = DocsPaUtils.Data.DataReaderHelper.GetValue <string>(reader, "MATRICOLA_ATTRIBUTE", true, info.UserAttributes.UserId); info.UserAttributes.Nome = DocsPaUtils.Data.DataReaderHelper.GetValue <string>(reader, "NOME_ATTRIBUTE", true, string.Empty); info.UserAttributes.Cognome = DocsPaUtils.Data.DataReaderHelper.GetValue <string>(reader, "COGNOME_ATTRIBUTE", true, string.Empty); info.UserAttributes.Sede = DocsPaUtils.Data.DataReaderHelper.GetValue <string>(reader, "SEDE_ATTRIBUTE", true, string.Empty); } } } return(info); } catch (Exception ex) { string errorMessage = "Errore nel reperimento delle configurazione LDAP per l'amministrazione"; logger.Debug(errorMessage, ex); throw new ApplicationException(errorMessage, ex); } }