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();Esprimi il tuo giudizio su questo script:
Per procedere devi essere autenticato.
Per inserire un commento, devi registrarti alla nostra community.








Stampa
Snippet
Download 


