2010-02-26 17 views
5

En ASP.NET puedo almacenar una cadena de conexión en el archivo web.config, así como tengo que almacenar la cadena de conexión o algún valor de configuración en algún archivo para ASP clásico.Dónde almacenar la cadena de conexión para ASP clásico?

¿Cómo puedo hacer esto? Para lograr esto, ¿necesito usar XML File y almacenar la cadena de conexión en esto?

¿Cuál es la mejor práctica ???

Respuesta

6

usa globa.asa para establecer un valor en el objeto de la aplicación.

+0

Eso funciona dentro de esa aplicación, pero no funcionaría en toda la empresa (suponiendo que haya múltiples aplicaciones) –

+0

La configuración se realiza normalmente por aplicación (incluido asp.net web.config). En cuanto a la seguridad, también es una buena práctica usar diferentes cuentas de usuario de db por aplicación. –

+0

Y si cada uno de mis clientes tiene una cadena de conexión? Cada uno de ellos accediendo a una base de datos SQL de Azure. – Onaiggac

5

Puede crear un archivo ASP que contenga la cadena de conexión como una variable de cadena, junto con cualquier otra información de configuración, y luego incluirlo en los archivos que se conectan a la base de datos.

+0

¿Esto debería ser un archivo .inc o un archivo .asp? – nimi

+3

convertirlo en un archivo .asp. En el pasado remoto, vi un servidor configurado de tal manera que los archivos .inc no eran interpretados por el tiempo de ejecución asp, lo que provocaba que el servidor descargara el origen del archivo .inc. Eso sería mucho menos probable que ocurra con un archivo .asp. –

+0

@Nimesh y @Paul, como sugiere Joost en su respuesta, usar 'global.asa' parece ser la mejor solución. Es accesible desde todas las páginas sin la necesidad de incluir nada ... –

2

Una cita cogí recientemente ...

No hacer algo tonto como tienda de el secreto en un archivo que está sentado en un directorio virtual en un servidor Web (web.config viene a la mente). Los servidores web han sido conocidos por permitiendo accidentalmente que los archivos sean descargados debido a errores. Para ejemplo, cadenas de conexión en clásicos páginas ASP pueden ser robados en el pasado señalando un navegador Web para 'page.asp :: $ DATA' en lugar de page.asp. Esto engañó a IIS en pensando que la solicitud era para un archivo estático porque .asp :: $ DATA no coincidiría con nada en su script mapa. Pero el sufijo :: $ DATA tiene significado especial para el sistema operativo : indica la secuencia predeterminada NTFS para el archivo, que es lo que obtiene cuando lee el contenido del archivo normalmente. En otras palabras, al solicitar el sistema de archivos para page.aspx :: $ DATA es lo mismo que solicitar el contenido de page.aspx. Por lo tanto IIS sería servir el origen de la página ASP en lugar de interpretarlo como un script . Ha habido muchos engaños como este a lo largo de los años, , pero la mayoría de la gente estaría de acuerdo en que está almacenando archivos sensibles fuera de cualquier directorio virtual en un servidor web . Mejor aún, guarde los archivos confidenciales en una partición diferente, donde residen sus directorios virtuales .