2011-06-13 13 views
41

Tengo el código de ejemplo siguiente en el archivo web.config.Cómo leer valores de la sección personalizada en web.config

<configuration> 
     <configSections> 
     <section name="secureAppSettings" type="System.Configuration.NameValueSectionHandler, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> 
     </configSections> 
<secureAppSettings> 
     <add key="userName" value="username"/> 
     <add key="userPassword" value="password"/> 
    </secureAppSettings> 
    </configuration> 

Mi nueva sección secureAppSettings se descifra y está teniendo dos llaves en su interior.

Ahora en mi código, desee acceder a estos llave algo, como a continuación:

string userName = System.Configuration.ConfigurationManager.secureAppSettings["userName"]; 
string userPassword = System.Configuration.ConfigurationManager.secureAppSettings["userPassword"]; 

Pero está volviendo null para estos campos.

¿Cómo puedo obtener los valores?

+0

más útil y siempre la solución de trabajo es éste en mi opinión: http://stackoverflow.com/a/28600293/4250041 – benraay

Respuesta

51

Se puede acceder a ellos en forma de pares clave/valor:

NameValueCollection section = (NameValueCollection)ConfigurationManager.GetSection("secureAppSettings"); 
string userName = section["userName"]; 
string userPassword = section["userPassword"]; 
+0

es sección separada de los juegos de aplicaciones, esta es la nueva sección llamada "secureAppSettings", cómo puedo obtener los valores en las aplicaciones y también se encripta "secureAppSettings" ahora. –

+1

@Manu, lo siento, leí totalmente su pregunta, tiene razón. He actualizado mi respuesta con la forma correcta de leer esos valores. –

+0

@Manu, oh hombre, OK: reemplaza 'var' con' NameValueCollection'. –

Cuestiones relacionadas