On continue aujourd'hui la sécurisation de notre serveur par l'installation d'un logiciel fort sympathique tournant sous python à savoir fail2ban. Le but de ce logiciel est de monitorer les accès de login sous SSH via une lecture du syslog.
Mot-clé - Configuration
mardi, 28 septembre 2010
Installation d'une Dédibox V3 sous Debian - Fail2Ban
Par Mathieu Muller le mardi, 28 septembre 2010, 17:53 - Web
mercredi, 10 février 2010
Configuration, ConfigurationSection et TypeLoadException
Par Mathieu Muller le mercredi, 10 février 2010, 20:01 - C# / .Net
Petite information à l'attention de tous ceux qui utilisent des classes dérivées de ConfigurationSection en .Net, et qui m'a quand même fait perdre un bon jour de développement. Si d'aventure la méthode Add() de Configuration.Sections retourne une exception de type TypeLoadException en indiquant que la classe n'est pas publique (alors que si, elle est publique, tout bien comme il faut), c'est que vous rencontrez le même souci que moi. En fait, le message d'erreur est trompeur et le souci est tout autre; c'est tout simplement parce que la signature de votre constructeur possède des paramètres! L'exemple simpliste suivant démontre l'erreur:
using System.Configuration;
namespace ConfigurationSectionTest
{
public class MyConfigurationSection : ConfigurationSection
{
public MyConfigurationSection(object dummy) : base()
{
}
}
class Program
{
static void Main(string[] args)
{
Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
configuration.Sections.Add("test", new MyConfigurationSection(new object()));
}
}
}
Si l'on retire le paramètre object du code, miracle, tout fonctionne!
using System.Configuration;
namespace ConfigurationSectionTest
{
public class MyConfigurationSection : ConfigurationSection
{
public MyConfigurationSection() : base()
{
}
}
class Program
{
static void Main(string[] args)
{
Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
configuration.Sections.Add("test", new MyConfigurationSection());
}
}
}
Bref, j'espère que cela vous aura sorti une épine du pied...