IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Modification du web.config dynamiquement


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Novembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 134
    Points : 85
    Points
    85
    Par défaut Modification du web.config dynamiquement
    Bonjour,

    Pour mon site web, je souhaite modifier le web.config par le code.
    J'ai trouvé des tuto mais ça n'a pas l'air de fonctionner.

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="change.aspx.cs" Inherits="change" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <%@Import Namespace="System.Web.Security" %>
    <%@ Import Namespace="System.Configuration" %>
    <%@ Import Namespace="System.Web.Configuration" %>
     
    <script language="C#" runat="server">
        public void Page_Load(object source, EventArgs e)
        {
            appDomaine.Text = ConfigurationManager.AppSettings.Get("domaine");
            appGroupe.Text = ConfigurationManager.AppSettings.Get("groupe");
        }
     
        void ModifySetting_OnClick(Object source, EventArgs e)
        {
            ConfigurationManager.AppSettings.Set("domaine", appDomaine.Text);
            ConfigurationManager.AppSettings.Set("groupe", appGroupe.Text);               
        }
     
    </script>
     
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>    
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <b>Domaine :</b>
            <asp:TextBox runat="server" id="appDomaine" /><br />
            <b>Groupe:</b>
            <asp:TextBox runat="server" id="appGroupe" /><br />
            <asp:Button runat="server" id="ModifySetting" OnClick="ModifySetting_OnClick" Text="Modify" /> <br />
        </div>
        </form>
    </body>
    </html>
    et le web.config :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <appSettings>
        <add key="domaine" value="dom_1" />
        <add key="groupe" value="grp_2" />
      </appSettings>
    J'ai essayer de rajouter ces lignes là dans la fonction Page-Load :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ConfigurationManager.AppSettings.Set("domaine", "test-1");
    ConfigurationManager.AppSettings.Set("groupe", "test-2");
    Et cette fois ci, j'ai bien les nouvelles valeurs dans mes champs texte mais rien n'est modifier dans le web.config.
    En les retirants, je les ai toujours dans les champs texte malgré le fait que le web.config n'est pas changé.

    Je ne vois pas ce qui cloche.

    De plus, l'authentification se fait par formulaire la première fois. Lorsque le web.config est modifier, l'authentification doit se faire par authentification Windows.

    Comment puis-je modifier la partie authentification ?

    Merci d'avance.

  2. #2
    Membre régulier
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Novembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 134
    Points : 85
    Points
    85
    Par défaut
    J'ai modifié la méthode de modification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void ModifySetting_OnClick(Object source, EventArgs e)
        {
            Configuration objConfig = WebConfigurationManager.OpenWebConfiguration("~");
            AppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings");
            if (objAppsettings != null)
            {
                objAppsettings.Settings["domaine"].Value = appDomaine.Text;
                objAppsettings.Settings["groupe"].Value = appGroupe.Text;
     
                objConfig.Save();
            }
     
        }
    Lorsque je laisse le fichier web.config ouvert dans Visual Studio, il me dit qu'il a été modifié et qu'il faut que je le recharge mais aucun paramètre n'a changé.

  3. #3
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    je ne pense pas que modifier le web.config dynamiquement soit une excellente idée.

  4. #4
    Membre régulier
    Homme Profil pro
    Responsable d’exploitation informatique
    Inscrit en
    Novembre 2004
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d’exploitation informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 134
    Points : 85
    Points
    85
    Par défaut
    Citation Envoyé par Arthis Voir le message
    je ne pense pas que modifier le web.config dynamiquement soit une excellente idée.
    Ce changement ne se fera qu'une seule fois, c'est juste pour paramètrer l'application.


    J'ai trouver le problème

    J'ai modifié ma méthode pour charger la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public void Page_Load(object source, EventArgs e)
        {
            if (appDomaine.Text.Length == 0 || appGroupe.Text.Length == 0)
            {
                appDomaine.Text = ConfigurationManager.AppSettings.Get("domaine");
                appGroupe.Text = ConfigurationManager.AppSettings.Get("groupe");
            }
        }
    Si les champs texte sont vide, je les rempli avec les paramètres du fichier web.config alors qu'avant, je les prenais en tout temps.

    Il ne me reste plus qu'à trouver comment changer le mode d'authentification.

    Edit :

    J'ai résolu mon problème, voici ce que j'ai rajouté dans ma méthode de modification :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Configuration configuration = WebConfigurationManager.OpenWebConfiguration(System.Web.HttpContext.Current.Request.ApplicationPath);
            AuthenticationSection authenticationSection = (AuthenticationSection)configuration.GetSection("system.web/authentication");
     
            if (authenticationSection != null)
            {
     
                authenticationSection.Mode = AuthenticationMode.Windows;
     
                configuration.Save();
            }
    Si ça peut aider certain, j'en serait ravi.

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Salut

    Est ce que cette astuce fonctionne sur les serveurs d'hébergement ?
    web.config est généralement protégé sur ceux-ci.

    petite remarque : j'aurai ajouté un "if(!IsPostBack)" dans le "Page_Load"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modification de web.config
    Par falak dans le forum ASP.NET
    Réponses: 1
    Dernier message: 25/05/2011, 09h21
  2. Web.config modification pour Silverlight
    Par SharePointDeveloper dans le forum Configuration
    Réponses: 1
    Dernier message: 08/09/2009, 15h32
  3. [SP-2007] Web.config modification pour Silverlight
    Par SharePointDeveloper dans le forum SharePoint
    Réponses: 1
    Dernier message: 08/09/2009, 15h32
  4. Comportement d'une modification du Web.config
    Par DranDane dans le forum ASP.NET
    Réponses: 1
    Dernier message: 29/07/2008, 11h26
  5. Réponses: 4
    Dernier message: 19/12/2006, 13h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo