2009-04-24 15 views
20

Creé un sitio web pequeño y solo habrá un administrador, por lo que en el panel de administración solicito una contraseña con un valor que no recupero de una base de datos, solo lo hago lo codifiqué en la función de código subyacente, sé que esto está mal, aunque no sé por qué.Almacenar y recuperar valores de web.config

¿Entonces es difícil codificarlo en web.config lo que hay que hacer? ¿y cómo?

Respuesta

49

Por lo que está mal ... el problema es que si alguna vez tiene que cambiarlo, y está codificado en su código subyacente, necesita volver a compilar, republicar, volver a implementar su sitio web, mientras que un cambio en el web.config se puede hacer sin hacer esto.

Puede ponerlo en un AppSetting en la web.config como tal.

<appSettings> 
    <add key="AdminPassword" value="ASDF1234" /> 
</appSettings> 

Utilizando este código para recuperarlo

System.Configuration.ConfigurationManager.AppSettings["AdminPassword"].ToString() 

A pesar de que tendría un vistazo a esto.

http://aspnet.4guysfromrolla.com/articles/021506-1.aspx

Cubre el cifrado de las secciones de su web.config

+0

¿Debe reiniciar el servidor web (IIS) para que ** web.config ** surta efecto? ¿Hay una mejor manera? –

+0

parece ser la solución, pero ¿por qué iba a obtener el viejo "" No se puede resolver el símbolo ToString? " – whyoz

+3

Sé que esto es muy viejo, pero ... pero la sintaxis debería ser: 'System.Configuration.ConfigurationManager.AppSettings (" AdminPassword "). ToString()' – Jeroen

3

No hay nada malo con la sugerencia de Eoin para pequeños proyectos, pero si su proyecto puede necesitar algún día más de 1 admin y diferentes tipos de roles de los usuarios. Me gustaría tomar el golpe y configurar la membresía ASP.

http://msdn.microsoft.com/en-us/library/ms998347.aspx

Puede utilizar integrarlo en ventanas o usar una base de datos y no es demasiado difícil de configurar. Especialmente si usa la herramienta de configuración integrada en IIS.

+0

sí. absolutamente de acuerdo. Vale la pena tomar el golpe, porque sabes que tendrás que hacerlo tarde o temprano. –

Cuestiones relacionadas