Extraire données du web.config

Résolu
Jean_Marc_1968 Messages postés 21 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 17 avril 2019 - 21 mars 2008 à 14:46
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 26 mars 2008 à 20:39
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

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
21 mars 2008 à 20:09
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
3
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
21 mars 2008 à 16:12
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.
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
22 mars 2008 à 02:26
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
0
Jean_Marc_1968 Messages postés 21 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 17 avril 2019
25 mars 2008 à 13:43
Merci beaucoup de ton aide qui, comme d'habitude, m'est fort précieuse.

Jean-Marc
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jean_Marc_1968 Messages postés 21 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 17 avril 2019
26 mars 2008 à 20:08
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
0
Jean_Marc_1968 Messages postés 21 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 17 avril 2019
26 mars 2008 à 20:22
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;
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
26 mars 2008 à 20:39
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
0
Rejoignez-nous