A volte mi è capitato di voler modificare dei parametri all'interno del web.config direttamente a runtime.
Un esempio tipico potrebbe essere quello di creare un nuovo ruolo ed aggiungerlo ad una cartello e/o file, oppure aggiungere una proprietà ad un profilo.
Nel nuovo Framework troviamo a nostra disposizione delle classi che ci vengono in aiuto.
Per prima cosa bisogna andare a leggere il file config e questo lo possiamo fare grazie alla classe WebConfigurationManager presente all'interno di System.Web.Configuration, mettendo il tutto in un oggetto:
Configuration config; config = WebConfigurationManager.OpenWebConfiguration("~");
Se non specificato, di default prende il web.config della root.
La seconda operazione da fare è andare a leggere il ramo che ci interessa modificare e metterlo in un oggetto.
Anche questa operazione ci è supportata da una serie di classi presenti nel System.Web.Configuration.
Tra le classi a nostra disposizione abbiamo:
- AuthenticationSection
- AuthorizationSection
- CacheSection
- CustomErrorsSection
- HealthMonitoringSection
- HttpHandlersSection
- HttpModulesSection
- MembershipSection
- OutputCacheSection
- PagesSection
- TrustSection
- UrlMappingsSection
Prendiamo ad esempio ProfileSection e andiamo ad aggiungere un nuovo profilo in questo modo:
ProfileSection compilation; compilation = config.GetSection("system.web/profile") as ProfileSection; //Creo il profilo assegnando gli attributi ProfilePropertySettings nome = new ProfilePropertySettings("myProperty"); nome.Type = "System.String"; nome.SerializeAs = SerializationMode.Binary; //Aggiungo il profilo alla sezione compilation.PropertySettings.Add(nome); //Salvo il web.config config.Save();
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.