Modificare il web.config con il WebConfigurationManager

di Ugo Lattanzi, in UserScript, ASP.NET 2.0, web.config,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi