Extraire données du web.config [Résolu]

Signaler
Messages postés
21
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
17 avril 2019
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Salut à toutes et à tous,

J'ai beau chercher, je ne trouve pas. Est-ce une mauvais façon de formuler ma recherche, je ne sais pas. Toujours est-il que je voudrais pouvoir extraire en c# la valeur du timeout du de l'Authentication Forms qui se trouve dans le web.config.

Comment fait-on ?

Merci de vos z'avis z'avisés,
Jean-Marc

7 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
Bonjour,

ASP.net est bien obligé de parser le fichier de config pour connaitre la valeur, ASP.net serait stupide de ne pas nous rendre cette information cruciale.

AuthenticationSection
authSection = (AuthenticationSection)ConfigurationManager.GetSection(@"system.web/authentication");
lblTest.Text = authSection.Forms.Timeout.ToString();Dans ce cas, tu ne peux pas modifier l'authentification dans un sous dossier de l'application (section définit MachineToApplication) donc que tu sois dans n'importe quelle dossier lui importe peu, il prendra la configuration de l'appli (qui elle prend le web.config + machine.config).
Par contre je ne sais pas ce qui se passe si on accède à la section customErrors lorsque cette section change pour chacun des sous-dossiers. Je vais tester dans la soirée et vous ferez un retour.

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
26
Salut,

Je ne pense pas que ce que tu veux soit possible avec des classes spécialisées du framework, mais il est possible de lire le fichier en XML et de faire des requetes XPATH dessus.

Il est possible avec des classes spécialisées de récupérer des appsettings ou les connections strings, pour les autres sections je ne connais pas.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
Dans mon cas de figure plus haut. ConfigurationManage.GetSection nous retourne bien la configuration pour le contexte courant.

J'ai expliqué un peu plus en détail ici : http://blogs.codes-sources.com/cyril/archive/2008/03/22/lire-parametre-fichier-config-webconfig-appconfig.aspx

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
21
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
17 avril 2019

Merci beaucoup de ton aide qui, comme d'habitude, m'est fort précieuse.

Jean-Marc
Messages postés
21
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
17 avril 2019

J'ai bien lu tes réponses et je m'en sers.
Toutefois je cherche à extraire d'autres données et je n'y arrive pas.

Soit la partie du web.config suivante :

<

membershipdefaultProvider="Npgsql
MembershipProvider"
>
    <providers>
        <addconnectionStringName="
NpgsqlServer"

                  name="
NpgsqlMembershipProvider"

                  type="
NpgsqlMembershipProvider"

                  applicationName="
Intranet"

                  minRequiredNonAlphanumericCharachers="
0"

                  minRequiredPasswordLength="
4"

                  requiresUniqueEmail="
false"

                 />
    </providers>
</membership>

Je cherche à récupérer les valeurs minRequiredNonAlphanumericCharachers et minRequiredPasswordLength.

J'ai écris ceci :

MembershipSection
MembershipSection = (
MembershipSection)
ConfigurationManager.GetSection(
@"system.web/membership");

ProviderSettings providerSettings = MembershipSection.Providers[0];

string test = providerSettings.Parameters[
"minRequiredPasswordLength"].ToString();

string test2 = providerSettings.Parameters[
"minRequiredNonAlphanumericCharachers"].ToString();

Mais test me retourne 7 et test2 est à null.
Qu'est-ce que j'ai fait de mal et comment faire ?

Merci,

Jean-Marc
Messages postés
21
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
17 avril 2019

Désolé du dérangement.
Je m'autorépond.
C'était trop simple et je cherchais trop loin :

int

minRequiredPasswordLength =
Membership.MinRequiredPasswordLength;
int
minRequiredNonAlphanumericCharacters =
Membership.MinRequiredNonAlphanumericCharacters;
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
22
Attention ! N'oubblie pas le <clear /> dans les providers sinon ASP.net va simplement rajouter ce provider à ceux déjà présent dans la config parente, c'est à dire la plupart du temps au machine.config qui possèdent déjà un membersip par défaut (il me semble).

Essaye de mettre un clear, pour voir si le code plus haut fonctionne, bien que la derniere solution est la meilleure ;-)

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant