Vous êtes sur la page 1sur 8

Cadena de conexin.

una cadena de conexion es una coleccion de parametros que se le dan a un objeta para que este con los valores que contiene cada parametro realize la conexion a la base de datos ejemplos de cadenas en .Net "Data Source=Aron1; Initial Catalog=pubs; User Id=myUsername; Password=myPassword;" si observas hay parametros Data Source Initial catalog User Id Password otro ejemplo "Data Source=190.190.200.100,1433; Network Library=DBMSSOCN; Initial Catalog=pubs; User ID=myUsername; Password=myPassword;"

Conectar con bases de datos en ASP.NET


SP.NET le proporciona flexibilidad a la hora de conectarse a las bases de datos. Un modo sencillo consiste en utilizar controles de origen de datos, que permiten encapsular el acceso a los datos en un control que se puede configurar con informacin sobre la conexin y la consulta. Opcionalmente, puede escribir su propio cdigo para realizar el acceso a los datos mediante las clases de ADO.NET.

Utilizar los controles de origen de datos en una pgina Web ASP.NET


Para conectarse a una base de datos mediante un control de origen de datos, deber realizar las operaciones siguientes: Determinar el tipo de control de origen de datos que necesita. Por ejemplo, el control ObjectDataSource funciona con un objeto comercial de nivel medio para recuperar y modificar los datos, mientras que el control SqlDataSource permite proporcionar una conexin a un origen de datos e instrucciones SQL para recuperar y modificar los datos. Cuando utilice el control SqlDataSource, determine el proveedor que necesita. Un proveedor es una clase que se comunica con un tipo especfico de base de datos. El valor predeterminado es el proveedor System.Data.SqlClient, que se conecta a una base de datos de Microsoft SQL Server. Agregar el control de origen de datos a la pgina y establecer sus propiedades para el acceso a datos. Por ejemplo, el control ObjectDataSource requiere el tipo de objeto comercial de nivel medio y uno o varios mtodos para consultar o modificar los datos. El control SqlDataSource requiere una cadena de conexin que incluya la informacin que

necesita el proveedor para abrir una base de datos determinada y uno o varios comandos SQL para consultar o modificar los datos. Puede definir la informacin sobre el proveedor y la conexin como propiedades individuales del control SqlDataSource, o puede definirla de forma centralizada en el archivo Web.config de la aplicacin Web. El almacenamiento de la informacin de conexin en el archivo Web.config permite reutilizarla con varias instancias del control de datos. Tambin ayuda a proteger la informacin de la cadena de conexin mediante listas de control de acceso (ACL) y cifrado. Para obtener ms informacin, vea "Cadenas de conexin" ms adelante en este mismo tema.

Proveedores
Un proveedor de ADO.NET es una clase que se puede comunicar con un tipo especfico de base de datos o almacn de datos. Por ejemplo, un proveedor podra comunicarse con una base de datos de SQL Server y otro podra comunicarse con una base de datos de Oracle. Los proveedores incluidos con .NET Framework son: Proveedor de datos de .NET Framework para SQL Server en el espacio de nombres System.Data.SqlClient. ste es el proveedor predeterminado para el controlSqlDataSource; si se conecta a una base de datos de SQL Server mediante el control SqlDataSource, no es necesario especificar explcitamente un proveedor. Proveedor de datos de .NET Framework para OLE DB en el espacio de nombres System.Data.OleDb. Proveedor de datos de .NET Framework para ODBC en el espacio de nombres System.Data.Odbc. Proveedor de datos de .NET Framework para Oracle en el espacio de nombres System.Data.OracleClient.

El proveedor se puede especificar en el archivo Web.config como parte de una cadena de conexin o como una propiedad de un control de origen de datos individual en una pgina.

Cadenas de conexin
Una cadena de conexin proporciona la informacin que un proveedor necesita para comunicarse con una base de datos determinada. Se puede almacenar en el archivo Web.config y hacer referencia a la entrada de configuracin en un control de origen de datos. Dependiendo del proveedor, una cadena de conexin generalmente proporciona el servidor o la ubicacin del servidor de bases de datos, la base de datos que se debe utilizar y la informacin de autenticacin. Al igual que ocurre con el proveedor, la cadena de conexin se puede incluir en el archivo Web.config o como una propiedad de un control de origen de datos individual en una pgina.

Almacenamiento de cadenas de conexin


Es recomendable incluir las cadenas de conexin en el archivo Web.config. En el elemento Elemento <configuration>, se puede crear un elemento secundario denominado<connectionStrings> e incluir all las cadenas de conexin, como se muestra en este ejemplo: <connectionStrings> <add name="NorthindConnectionString" connectionString=" Server=MyDataServer;Integrated Security=SSPI;Database=Nort hwind;" providerName="System.Data.SqlClient" /> </connectionStrings> En este ejemplo se proporciona tanto el nombre como el proveedor. Cualquier control de origen de datos situado en cualquier pgina de la aplicacin puede hacer referencia a esta entrada de cadena de conexin. Una ventaja del almacenamiento de la informacin de cadenas de conexin en el archivo Web.config es que permite cambiar fcilmente el nombre del servidor, la base de datos o la informacin de autenticacin sin necesidad de editar pginas Web individuales. Adems, puede proteger la cadena de conexin mediante cifrado. Para obtener ms informacin, vea Cmo: Proteger cadenas de conexin al utilizar controles de orgenes de datos.

Controles de origen de datos


Los controles de origen de datos proporcionan servicios de datos, que incluyen la recuperacin y modificacin de datos, y pueden utilizar otros controles de servidor Web enlazados a datos, como los controles GridView, FormView y DetailsView. Un control de origen de datos, como SqlDataSource, encapsula todos los elementos requeridos para conectarse a una base de datos (proveedor, cadena de conexin y consulta) y recuperar o manipular los datos. Por ejemplo, el siguiente control SqlDataSource est configurado para conectarse a una base de datos y leer todos los registros de la tabla Customers: <asp:SqlDataSource ID="SqlDataSource1" Runat="server" SelectCommand="Select * from Customers" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" /> En este ejemplo, el nombre del proveedor y la cadena de conexin se almacenan en el archivo Web.config, mientras que la consulta SQL est configurada como una propiedad del control de origen de datos.

Realizar el acceso a los datos en el cdigo


Si no resulta conveniente utilizar controles de origen de datos en su aplicacin, puede codificar el acceso a los datos con las clases de ADO.NET. Esta prctica es aconsejable si sus requisitos son demasiado complejos para utilizar los controles de origen de datos o si desea crear un componente independiente que realice el acceso a los datos fuera de sus pginas Web.

Cmo: Proteger cadenas de conexin al utilizar controles de orgenes de datos (Visual Studio)
Al trabajar con controles de origen de datos debe centralizar la ubicacin de las cadenas de conexin situndolas en el archivo Web.config de la aplicacin. Los beneficios son dobles: los controles del origen de datos podran hacer referencia al nombre de la cadena de conexin del archivo de configuracin en lugar de incluir la cadena de conexin como una propiedad de control; y la administracin del sitio es ms fcil porque la administracin de cadenas de conexin es centralizada, lo que elimina la necesidad de volver a visitar pginas individuales si la informacin de las cadenas de conexin cambia. En este tema aprender a colocar las cadenas de conexin dentro del archivo Web.config utilizando Visual Studio y un control de origen de datos, y cmo utilizar la utilidad de la lnea de comandos, Aspnet_regiis.exe, para cifrar esas cadenas de conexin para obtener una capa de seguridad adicional.

Cmo agregar una cadena de conexin a Web.config con un control de origen de datos
1. 2. 3. 4. 5. 6. 7. Abra una pgina .aspx en la vista Diseo en Visual Studio. En el Cuadro de herramientas, en la carpeta Datos, arrastre un control de origen de datos, por ejemplo un control SqlDataSource, hasta la superficie de diseo. Haga clic con el botn secundario del mouse en el control y, a continuacin, haga clic en Mostrar etiqueta inteligente. En el panel de etiquetas inteligentes, haga clic en Configurar origen de datos. En el panel Elegir una conexin de datos, haga clic en Nueva conexin. Seleccione un origen de datos adecuado de la lista en el cuadro de dilogo Elegir una conexin de datos, y luego haga clic en Aceptar. Indique el nombre de servidor, nombre de usuario y contrasea correctos en el cuadro de dilogo Agregar conexin, y despus haga clic en Aceptar. Regresa al cuadro de dilogo Configurar origen de datos con un resumen de los detalles de su conexin. 8. Haga clic en Siguiente, y luego en S para guardar su cadena de conexin en el archivo Web.config. La cadena de conexin ahora se almacena en el archivo Web.config y puede configurar los detalles de la consulta para su control.

Para cifrar la informacin de la cadena de conexin almacenada en el archivo Web.config


1. En la lnea de comandos de Windows, ejecute la herramienta Registro de IIS de ASP.NET (Aspnet_regiis.exe) con las opciones siguientes: La opcin -pe, pasndole la cadena "connectionStrings" para cifrar el elemento connectionStrings. La opcin -app, pasndole el nombre de su aplicacin. La herramienta Aspnet_regiis.exe est ubicada en la carpeta %systemroot%\Microsoft.NET\Framework\versionNumber. En el ejemplo siguiente se muestra cmo se cifra la seccin connectionStrings del archivo Web.config de una aplicacin denominada SampleApplication. aspnet_regiis -pe "connectionStrings" -app "/SampleApplication" Cuando el comando haya finalizado, puede ver el contenido del archivo Web.config. La seccin de configuracin connectionStrings contendr informacin cifrada en vez de una cadena de conexin de texto no cifrado, como se muestra en el ejemplo siguiente. <configuration> <connectionStrings configProtectionProvider="RsaProtectedConfiguration Provider"> <EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element" xmlns="http://www.w3.org/2001/04/xmlenc#"> <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tr ipledes-cbc" /> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <EncryptedKey xmlns="http://www.w3.org/2001/04/xmlenc#"> <EncryptionMethod Algorithm="http://www.w3.org/2001/04/xml enc#rsa-1_5" /> <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#"> <KeyName>RSA Key </KeyName> </KeyInfo> <CipherData> <CipherValue>WcFEbDX8VyLfAsVK8g6hZVAG1674ZFc1kWH0BoazgO wdBfinhcAmQmnIn0oHtZ5tO2EXGl+dyh10giEmO9NemH4YZk+iMIln+ItcEay9CGWMXSen9UQ LpcQHQqMJErZiPK4qPZaRWwqckLqriCl9X8x9OE7jKIsO2Ibapwj+1Jo= </CipherValue> </CipherData> </EncryptedKey> </KeyInfo> <CipherData> <CipherValue>OpWQgQbq2wBZEGYAeV8WF82yz6q5WNFIj3rcuQ8gT0MP97aO 9SHIZWwNggSEi2Ywi4oMaHX9p0NaJXG76aoMR9L/WasAxEwzQz3fexFgFSrGPful/5txSPTAG cqUb1PEBVlB9CA71UXIGVCPTiwF7zYDu8sSHhWa0fNXqVHHdLQYy1DfhXS3cO61vW5e/KYmKO GA4mjqT0VZaXgb9tVeGBDhjPh5ZlrLMNfYSozeJ+m2Lsm7hnF6VvFm3fFMXa6+h0JTHeCXBdm zg/vQb0u3oejSGzB4ly+V9O0T4Yxkwn9KVDW58PHOeRT2//3iZfJfWV2NZ4e6vj4Byjf81o3J VNgRjmm9hr9blVbbT3Q8/j5zJ+TElCn6zPHvnuB70iG2KPJXqAj2GBzBk6cHq+WNebOQNWIb7

dTPumuZK0yW1XDZ5gkfBuqgn8hmosTE7mCvieP9rgATf6qgLgdA6zYyVV6WDjo1qbCV807lcz xa3bF5KzKaVUSq5FS1SpdZKAE6/kkr0Ps++CE= </CipherValue> </CipherData> </EncryptedData> </connectionStrings> </configuration> Deje el smbolo del sistema abierto para los pasos posteriores. 2. Determine la cuenta de usuario o identidad con la que se ejecuta ASP.NET recuperando el nombre de WindowsIdentity actual. En el siguiente ejemplo de cdigo se muestra una forma de determinar el nombre de WindowsIdentity. VB <%@ Page Language="VB" %> <% Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Nam e) %> C# <%@ Page Language="C#" %> <% Response.Write(System.Security.Principal.WindowsIdentity.GetCurrent().Nam e); %>

Nota
De forma predeterminada, en Windows Server 2003 con suplantacin de una aplicacin ASP.NET deshabilitada en el archivo Web.config, la identidad con la que se ejecuta est en la cuenta NETWORK SERVICE. En las otras versiones de Windows, ASP.NET se ejecuta bajo la cuenta ASPNET local.
La cuenta de usuario o la identidad con la que se ejecuta ASP.NET debe tener acceso de Lectura a la clave de cifrado utilizada para cifrar y descifrar las secciones del archivo Web.config. En este procedimiento se supone que su sitio Web se configura con el RsaProtectedConfigurationProvider predeterminado especificado en el archivo Machine.config denominado "RsaProtectedConfigurationProvider". El contenedor de claves RSA utilizado por el RsaProtectedConfigurationProvider predeterminado se denomina "NetFrameworkConfigurationKey". 3. En el smbolo del sistema, ejecute la herramienta Aspnet_regiis.exe con las opciones siguientes:

La opcin -pa, pasndole el nombre del contenedor de claves RSA del RsaProtectedConfigurationProvider predeterminado La identidad de la aplicacin ASP.NET, como se determin en el paso anterior.

En el ejemplo siguiente se muestra cmo conceder el acceso de la cuenta NETWORK SERVICE al contenedor de claves RSA de "NetFrameworkConfigurationKey" en el nivel de equipo. aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT AUTHORITY\NETWORK SE RVICE" 4. Para descifrar el contenido cifrado del archivo Web.config, ejecute la herramienta aspnet_regiis.exe con la opcin -pd. La sintaxis es igual que la usada para cifrar el contenido del archivo Web.config con la opcin -pe, excepto que no se especifica ningn proveedor de configuracin protegido. Se identifica el proveedor adecuado en el atributo configProtectionProvider para la seccin protegida. En el siguiente ejemplo de cdigo se muestra cmo descifrar el elemento connectionStrings de la aplicacin ASP.NET SampleApplication. aspnet_regiis -pd "connectionStrings" -app "/SampleApplication"

Con este truco informtico podremos leer la cadena de conexin del Web Config en ASP.NET 2.0. Primero crearemos la cadena de conexin en el web config:

<;connectionStrings>; <;remove name="LocalSqlServer" />; <;add name="LocalSqlServer" connectionString="Data Source=myDBServer;database=myDB;Integrated Security=True;" providerName="System.Data.SqlClient"/>; <;/connectionStrings>;

Leer cadena de conexin del WebConfig


Ahora ya tenemos la cadena de conexin creada en el Web Config. Podemos leerla as de fcil: En C#:
string strConnString = ConfigurationManager.ConnectionStrings["LocalSqlServer"].ConnectionString;

En VB.NET:
Dim strConnString As String = ConfigurationManager.ConnectionStrings("LocalSqlServer").ConnectionString

Vous aimerez peut-être aussi