Académique Documents
Professionnel Documents
Culture Documents
ASP.NET incluye dos tipos de controles de servidor que participan en el modelo de enlace de datos
declarativo: controles de origen de datos y controles enlazados a datos. Estos controles
administran las tareas subyacentes requeridas por el modelo Web sin estado para mostrar y
actualizar datos en pginas Web ASP.NET. Por tanto, no es estrictamente necesario conocer los
detalles del ciclo de vida de la solicitud de pgina si slo se va a realizar el enlace de datos.
Control de origen de
datos
Descripcin
ObjectDataSource
Permite trabajar con un objeto comercial u otra clase y crear aplicaciones Web basadas en objetos de nivel
medio para administrar los datos.
Para obtener ms informacin, vea ObjectDataSource (Control de servidor Web).
SqlDataSource
Permite trabajar con proveedores de datos administrados de ADO.NET, que proporcionan acceso a bases de
datos de Microsoft SQL Server, OLE DB, ODBC u Oracle.
Para obtener ms informacin, vea SqlDataSource (Control de servidor Web).
AccessDataSource
XmlDataSource
Permite trabajar con un archivo XML, que es especialmente til para controles de servidor ASP.NET jerrquicos
tales como el control TreeView o Menu.
Pag 1 de 11
Se utiliza con la exploracin del sitio ASP.NET. Para obtener ms informacin, vea Informacin general sobre
la exploracin del sitio de ASP.NET.
Los controles de origen de datos tambin se pueden ampliar para admitir proveedores de
almacenamiento y acceso a datos adicionales.
Para obtener ms informacin sobre controles de origen de datos, vea Informacin general sobre
los controles de origen de datos.
Pag 2 de 11
Nota
El control GridView reemplaza el control DataGrid ASP.NET disponible en versiones anteriores de ASP.NET.
Para obtener ms informacin, vea GridView (Control de servidor Web).
Menu
Representa los datos en un men dinmico jerrquico que puede incluir submens.
Para obtener ms informacin, vea Menu (Control de servidor Web).
Repeater
Representa los datos en una lista. Cada elemento se representa utilizando una plantilla de
elemento definida por el usuario.
Para obtener ms informacin, vea Repeater (Control de servidor Web).
TreeView
Representa los datos en un rbol jerrquico de nodos que se pueden expandir.
Para obtener ms informacin, vea TreeView (Control de servidor Web).
Nota
El control DataGrid disponible en versiones anteriores de ASP.NET se ha sustituido por el control GridView, que incluye
funciones mejoradas para ordenar, paginar y modificar datos. Las pginas existentes que utilicen el control DataGrid
continuarn funcionando. Al igual que otros controles de datos, el control DataGrid se ha mejorado para interactuar con
controles de origen de datos.
Pag 3 de 11
Control SqlDataSource
El control SqlDataSource representa una conexin directa a una base de datos en una aplicacin
Web. Los controles enlazados a datos como los controles GridView, DetailsView y FormView
pueden utilizar el control SqlDataSource para recuperar y modificar datos automticamente. Se
especifican comandos para seleccionar, insertar, actualizar y eliminar datos como parte del control
SqlDataSource, y el control realiza estas operaciones automticamente. No es necesario escribir
cdigo (por ejemplo, cdigo de ADO.NET que utiliza clases del espacio de nombres System.Data)
para crear una conexin ni especificar comandos para consultar y actualizar una base de datos.
En el ejemplo de cdigo siguiente se muestra un control GridView enlazado a un control
SqlDataSource para recuperar, actualizar y eliminar datos.
<%@ Page language="VB" %> <html> <body> <form runat="server"> <h3>GridView Edit
Example</h3> <!-- The GridView control automatically sets the columns --> <!-specified in the datakeynames property as read-only. --> <!-- No input controls
are rendered for these columns in --> <!-- edit mode. --> <asp:gridview
id="CustomersGridView" datasourceid="CustomersSqlDataSource"
autogeneratecolumns="true" autogeneratedeletebutton="true"
autogenerateeditbutton="true" datakeynames="CustomerID" runat="server">
</asp:gridview> <!-- This example uses Microsoft SQL Server and connects --> <!-to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve
the connection string value --> <!-- from the Web.config file. -->
<asp:sqldatasource id="CustomersSqlDataSource" selectcommand="Select [CustomerID],
[CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]"
updatecommand="Update Customers SET CompanyName=@CompanyName, Address=@Address,
City=@City, PostalCode=@PostalCode, Country=@Country WHERE (CustomerID =
@CustomerID)" deletecommand="Delete from Customers where CustomerID = @CustomerID"
connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>"
runat="server"> </asp:sqldatasource> </form> </body> </html>
El control SqlDataSource conecta directamente a una base de datos y, por consiguiente,
implementa un modelo de datos de dos niveles. Si se necesita enlazar un objeto comercial de nivel
medio que realiza recuperaciones y actualizaciones de datos, se puede utilizar el control
ObjectDataSource. Para obtener informacin detallada, vea Establecer enlaces con objetos
comerciales.
Para obtener ms informacin sobre el control SqlDataSource, vea Informacin general sobre el
control de servidor Web SqlDataSource.
Pag 4 de 11
Pag 5 de 11
Pag 6 de 11
No almacene cadenas de conexin como texto sin formato. Para proteger la conexin al
servidor de base de datos, se recomienda cifrar la informacin de la cadena de conexin del
archivo de configuracin mediante la configuracin protegida. Para obtener ms
informacin, vea Cifrar informacin de configuracin mediante una configuracin protegida.
Pag 7 de 11
Como base de datos de prueba al desarrollar la aplicacin Web. Cuando est listo para
implementar la aplicacin, puede transferir la base de datos de SQL Server Express a una
instancia de produccin de SQL Server.
Utilcelas si est ejecutando un sitio Web que permite la suplantacin y puede controlar
los privilegios del usuario suplantado. En la prctica, esta estrategia es conveniente si la
aplicacin se est ejecutando en una red de rea local (no en un sitio Web pblico).
Pag 8 de 11
Agregue los permisos adecuados a las cuentas de los usuarios que leern el archivo
.mdb y escribirn en l. Si el sitio Web admite el acceso annimo, sta suele ser la cuenta
de usuario ASPNET local o la cuenta NETWORK SERVICE. Dado que Access debe crear un
archivo .ldb para admitir el bloqueo, la cuenta de usuario debe tener permisos de escritura
para la carpeta que contiene el archivo .mdb.
Archivos XML
Si est almacenando datos en un archivo XML, coloque el archivo en la carpeta App_Data del sitio
Web porque el contenido de la carpeta no se devolver como respuesta a solicitudes HTTP
directas.
una secuencia de comandos a la aplicacin para que otros usuarios la ejecuten. En los
ataques de inyeccin tpicos, las secuencias de comandos se envan a una pgina que las
almacena en una base de datos, de modo que otro usuario que vea los datos ejecute el
cdigo sin darse cuenta.
Inyeccin SQL
Pag 9 de 11
Utilice controles de validacin siempre que sea posible para admitir slo valores
aceptables.
Vuelva a validar siempre los datos proporcionados por los usuarios en la capa de
negocio de la aplicacin. No confe en el proceso de llamada para proporcionar datos
seguros. Por ejemplo, si utiliza el control ObjectDataSource, agregue validacin y
codificacin redundantes al objeto que realiza las actualizaciones de los datos.
Codifique la entrada del usuario con el mtodo HtmlEncode, que convierte el cdigo
HTML en su representacin de texto (por ejemplo, <b> se vuelve <b>) y ayuda a
evitar que el marcado se ejecute en un explorador.
Al utilizar objetos de parmetro para pasar los datos proporcionados por el usuario a
una consulta, agregue controladores para los eventos previos a la consulta del control del
origen de datos y lleve a cabo la codificacin en esos eventos. Por ejemplo, controle el
evento SqlDataSource del control Inserting y, en el evento, codifique el valor del
parmetro antes de que se ejecute la consulta.
Para los controles que se pueden colocar en el modo de edicin, se recomienda utilizar
plantillas. Por ejemplo, los controles GridView, DetailsView, FormView, DataList y Login
pueden mostrar cuadros de texto modificable. Sin embargo, salvo el control GridView (vea
el punto anterior), los controles no validan automticamente ni codifican en HTML los datos
proporcionados por los usuarios. Por consiguiente, se recomienda crear plantillas para estos
controles e incluir en ellas un control de entrada como TextBox y agregar un control de
validacin. Adems, al extraer el valor del control, debe codificarlo.
Inyeccin SQL
Para evitar los ataques de inyeccin SQL, siga estas instrucciones:
No cree comandos de SQL concatenando las cadenas, sobre todo las que incluyen datos
introducidos por los usuarios. Utilice consultas con parmetros o procedimientos
almacenados.
Si crea una consulta parametrizada, utilice objetos de parmetro para establecer los
valores de los parmetros. Para obtener informacin detallada, vea Utilizar parmetros con
el control SqlDataSource y Utilizar parmetros con controles de origen de datos.
Pag 10 de 11
Pag 11 de 11