![Page 1: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/1.jpg)
ASP.NET Con Visual Studio.NET
![Page 2: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/2.jpg)
Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP .NET Uso del Web.Config Caching Monitorización de aplicaciones ASP .NET Web Service
![Page 3: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/3.jpg)
IntroducciónMicrosoft .NET FrameWork
.NET.NETFramework Framework
.NET.NETFramework Framework
InternetInternetInternetInternet
COM+COM+COM+COM+
OrchestrationOrchestration OrchestrationOrchestration
Windows Windows
.NET Enterprise
Servers
.NET Enterprise
Servers
BuildingBuildingBlockBlock
ServicesServices
BuildingBuildingBlockBlock
ServicesServices
Visual Studio.NET Visual Studio.NET
Base Class LibraryBase Class Library
ADO.NET: Data & XMLADO.NET: Data & XML
UserUserInterfaceInterface
Common Language RuntimeCommon Language Runtime
WebWebServicesServices
![Page 4: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/4.jpg)
IntroducciónModelo de ejecución de ASP.NET
![Page 5: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/5.jpg)
Web Forms¿Qué es un Web Form?
Modelo de Código Ciclo de vida Eventos del lado del servidor Controles de servidor Validaciones
![Page 6: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/6.jpg)
Web FormsModelo de Código
Code Behind Separación entre Lógica y Presentación Orientado a Objectos Orientado a Eventos
![Page 7: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/7.jpg)
Web Forms Gestionando el PostBack de los Forms El control ViewState mantiene el estado de la
página durante el PostBack El evento Page_Load se lanza en cada
petición Usar Page.IsPostBack para ejecutar lógica
condicional
private void Page_Load(object server, EventArgs e)
{
if(Page.IsPostBack)
{
…
}
}
![Page 8: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/8.jpg)
Web FormsCiclo de vida Página ASP.NET
Codificación de aplicaciones similar a Win32
Form_Initialize() ~ Page_Init()Form_Load() ~ Page_Load()Form_Activate() ~ Page_PreRender()Form_Unload() ~ Page_Unload()
![Page 9: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/9.jpg)
Web FormsEventos del lado del servidor
Runat=“server” <form runat=“server”> <input type=button id=button1 OnServerClick=“Button1_Click” runat=“server” /> Button1_Click(Sender as Object, e as EventArgs) Button1.Text = “Save”
![Page 10: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/10.jpg)
Web FormsControles de Servidor
Lanza Eventos al servidor Controles básicos
textbox, checkbox, radio, button Controles avanzados
AdRotator, Calendar, DataGrid, Validator
![Page 11: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/11.jpg)
Web FormsControles básicos de Servidor
<asp:textbox id=text1 runat=server/>text1.text = “Hello World”
<asp:checkbox id=check1 runat=server/>check1.checked=True
<asp:button id=button1 runat=server/>button1_onClick()
<asp:DropDownList id=DropDownList1 runat=server>DropDownList1.SelectedItem.Text = “Hello”
![Page 12: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/12.jpg)
Web FormsControles Avanzados de Servidor
DataGrid Definido por <asp:datagrid /> Ordenación por columnas Edición en línea Tabla HTML DataBinding Paginación
![Page 13: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/13.jpg)
Web Forms Controles Avanzados de Servidor
Validaciones Required Validator Control Range Validator Control Compare Validator Control Regular Expression Validator Custom Validator Control Ejemplo:<asp:RequiredFieldValidator ControlToValidate="txtName" ErrorMessage="Please Enter Your Name" runat="server" />
![Page 14: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/14.jpg)
Demostración 1Web Forms
Modelo de CódigoModelo de Eventos
Controles de Servidor
![Page 15: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/15.jpg)
Application_OnStart Application_OnEnd Session_OnStart Session_OnEnd
Aplicaciones ASP.NET ASP Tradicionales (global.asa)
![Page 16: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/16.jpg)
Aplicaciones ASP.NETGlobal.ASAX Primera Petición
Application_Start Primera petición por cada usuario
Session_Start Cada Petición
Application_BeginRequest Application_Authenticate Application_EndRequest
Error en tiempo de ejecución Application_Error
Logs Out de usuario/Times Out de sesión Session_End
Shutdown del Servidor Web Application_End
![Page 17: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/17.jpg)
Application_BeginRequest Acciones de personalización Texto para ser incluido al principio de cada página
Application_EndRequest Texto para ser añadido al final de cada página
Application_Error Util para enviar email o escribir al event log cuando
un ocurra un error que no pueda ser manejado
ASP.NET ApplicationsGlobal.ASAX Uso de eventos
![Page 18: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/18.jpg)
Session_End Escribir a un log o base de datos los log out de
cada usuario Application_End
Útil para escribir a un log cuando se ha parado una aplicación web. Se podría escribir un mensaje en el event log
Application_Start Útil para cargar la información de configuración
específica de un site
ASP.NET ApplicationsGlobal.ASAX Uso de eventos
![Page 19: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/19.jpg)
Son esencialmente variables globales para la aplicación
Application(“CompanyName”)Se pueden bloquear o desbloquear
variables de Applicación Application.lock Application(“GlobalCounter”) = NewValue Application.unlock
ASP.NET ApplicationsSalvando el estado de una aplicación
![Page 20: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/20.jpg)
Variables por usuario Disponible para todas las páginas en el site Session(“UserID”) = 5 UserID = Session(“UserID”)
ASP.NET ApplicationsSalvando el estado de una sesión
![Page 21: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/21.jpg)
Sesiones ASP Forzar “Server Affinity” Dependiente de cookies No tolerancia a fallos
Sesiones ASP .NET Soporte para granjas Web No necesitan cookies Mejor tolerancia a fallos
ASP.NET ApplicationsSesiones ASP vs. Sesiones ASP .NET
![Page 22: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/22.jpg)
Información de configuración almacenada en Web.Config
<sessionStateInproc=“true”mode=“sqlserver” cookieless=“false”timeout=“20”sqlconnectionstring=“data source=127.0.0.1;user id=sa;password=“”
stateConnectionString="tcpip=127.0.0.1:42424" />
</sessionState>
ASP.NET ApplicationsConfigurando estados
![Page 23: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/23.jpg)
Modo InProc – Similar a ASP. Almacena las sesiones en la
memoria del servidor web. Stateserver – Las sesiones son almacenadas en un
servidorexterno,en memoria. SQLServer – Las sesiones son almacenadas en una base de
datos de SQL Server. Cookieless
Determina si las sesiones sin Cookies deberían ser usadas Valores posibles true o false
TimeOut Determina el timeout por defecto para las sesiones en el sitio
web
ASP.NET ApplicationsConfigurando estados
![Page 24: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/24.jpg)
SQLConnectionString contiene los parámetros datasource, userid, y
password necesarios para conectar a la base de datos que almacena las sesiones
stateConnectionString contiene toda la información necesaria para
conectar al servidor de estados.
ASP.NET ApplicationsConfigurando estados
![Page 25: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/25.jpg)
Para configurar SQL Server para almacenar información de estados se debe ejecutar un pequeño script en el servidor
InstallSQLState.sql puede ser encontrado en [sysdrive]\winnt\Microsoft.NET\Framework\[version]
Crea lo siguiente en el servidor Una base de datos llamada ASPState Procedimientos almacenados Tablas en TempDB para almacenar los datos de los
estados. Para desinstalar ejecutaremos el script
UninstallSQLState.sql
ASP.NET ApplicationsAlmacenado datos en SQL Server
![Page 26: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/26.jpg)
Demostración 2Aplicaciones ASP.NET
Uso del Global.asaxSalvando el estado de la
aplicación
![Page 27: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/27.jpg)
Seguridad Conceptos de seguridad
Autentificación Autorización Impersonación
![Page 28: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/28.jpg)
Seguridad Autentificación
Windows Basic Digest Integrated
Passport Form
![Page 29: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/29.jpg)
SeguridadAutentificación Windows
Se habilita através de Internet Services Manager
![Page 30: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/30.jpg)
Seguridad Autentificación Windows
Se habilita para ASP.NET através de Web.config
<security>
<authentication mode="Windows" />
</security>
![Page 31: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/31.jpg)
Seguridad Autentificación Windows El Site puede acceder fácilmente al Nombre
de usuario
Dim UserName As String
UserName = User.Identity.Name
Grupos “NT” son automáticamnete mapeados a Roles ASP.NET
If User.IsInRole(“Administrators”) Then…
![Page 32: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/32.jpg)
Seguridad Autentificación Form El sitio web es el responsable de la seguridad, no IIS
Configurar IIS para permitir acceso anonimo Configurar Web.Config para forzar a los usuarios a
autentificarse através de un formulario<authentication mode="Forms">
<forms loginUrl="Registration.aspx">
</forms></authentication><authorization>
<deny users="?" /></authorization>
Cualquier usuario no autentificado será enviado a “Registration.aspx”
![Page 33: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/33.jpg)
Seguridad Autentificación Form Se codifica un formulario para obtener el
User ID y Password Para Autentificar un usuario:
FormAuthentication.RedirectFromLoginPage(UserName, False)
RedirectFromLoginPage Marca un usuario como autentificado Lleva al usuario a la página que ha pedido
originalmente Si el usuario ha pedido la página de login, takes
se redirige a Default.aspx Se puede persistir la autentificación en una
cookie
![Page 34: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/34.jpg)
Seguridad Autentificación Form - Declarativa
Para Sites simples, se puede almacenar el User ID y Password en el Web.config
<credentials passwordFormat="clear">
<user name="MSDN" password="online" />
<user name="Guest" password="guest" />
</credentials>
![Page 35: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/35.jpg)
Seguridad Autentificación Form - Declarativa
Authenticate devuelve true o false
FormsAuthentication.Authenticate( _
UserName, Password)
![Page 36: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/36.jpg)
Seguridad Autentificación Form - Programaticamente Código usado para autentificar un usuario
SQL = “Select * From Users ” & _
“Where UserID = ‘” & UserName & “’”
If UserFoundInDataBase then
FormAuthentication.RedirectFromLoginPage(UserNam e,false)
Else
lblLoginError.Text = “User Not Found or Invalid Password”
end if
![Page 37: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/37.jpg)
Seguridad Roles
JaneJaneJaneJane
JillJillJillJill
JohnJohnJohnJohn
JennyJennyJennyJenny
JamieJamieJamieJamie
ComercialComercialComercialComercial
AdminsAdminsAdminsAdmins
WEBWEBContenido Contenido ComercialComercial
WEBWEBContenido Contenido ComercialComercial
Contenido Contenido Admin.Admin.
![Page 38: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/38.jpg)
SeguridadRoles
Construir la aplicación basándose en Roles Acceso a Páginas Contenido personalizado de páginas
Después del Deployment, asignar usuarios a roles
![Page 39: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/39.jpg)
SeguridadRoles Asignación programática de usuarios a
roles
Sub Application_AuthenticateRequest(ByVal Sender As Object, ByVal e As EventArgs)
If request.IsAuthenticated = True Thensql = “select role from roles where userid=‘“
& UserID & “’”
‘ Get Roles from Result Setcontext.User = New GenericPrincipal(user,
roles)End If
End Sub
![Page 40: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/40.jpg)
SeguridadRoles
Mostrar contenido basado en roles
If User.IsInRole(“HumanRes”) Then
cmdEditSalary.Visible = true
End If
![Page 41: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/41.jpg)
SeguridadImpersonalización Autentificación Windows Web.config
<identity>
<impersonation enable="true"
name="username"
password="password" />
</identity>
![Page 42: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/42.jpg)
Demostración 3Seguridad
Autentificación Windows Registro basado en formularios
Autentificación basada en formularios
Asignación de usuarios a roles
![Page 43: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/43.jpg)
Configuración y OptimizaciónWeb.Config
Fichero de configuración del site Se distribuye con el Site Almacena la mayoría de las opciones de configuración Fácil mantenimiento y despliegue Los cambios toman efecto inmediatamente
![Page 44: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/44.jpg)
Configuración y Optimización Configuración jerárquica
Web.Config y sus configuraciones son heredadas en una jerarquía Configuración a nivel de máquina (Winnt\Microsoft .NET\Version\) Directorio raiz de la aplicación web Sub directorios
![Page 45: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/45.jpg)
Configuración y Optimización Configuración jerárquica
La configuración puede apuntar a un conjunto específico de ficheros o directorios mediante el uso del tag <location>
<configuration><location path=“/admin”>
<system.web><security>
<authorization><allow roles=“Admins”></authorization>
</security></system.web>
</location>
</configuration>
![Page 46: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/46.jpg)
Configuración y Optimización Configuración jerárquica
Machine.config Tracing Disabled Execution Timeout 90 Seconds Session State Enabled, Inproc Authentication Allow Anonymous Multi CPU Support Disabled
![Page 47: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/47.jpg)
Configuración y Optimización Configuración personalizada
Ejemplos de Personalización AppSettings CustomErrors Trace Settings Authentication Session Settings
![Page 48: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/48.jpg)
Configuración y Optimización Configuración Personalizada
Personalizar configuración en el Web.config
<configuration><appSettings><add key="DSN" value="server=localhost…</appSettings></configuration>
Accediendo con código
DSN = ConfigurationSettings.AppSettings("DSN")
![Page 49: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/49.jpg)
Configuración y Optimización Configuración Personalizada Redirigir ciertos errores a ciertas
páginas
<customErrors mode="On"><error statusCode="404" redirect="errorpage404.aspx" />
</customErrors>
<customErrors mode=“RemoteOnly"><error statusCode="404" redirect="errorpage404.aspx" />
</customErrors>
![Page 50: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/50.jpg)
Configuración y Optimización Configuración Personalizada
Tracing
<trace enabled=“true" requestLimit="10" pageOutput=“true" traceMode="SortByTime"
/>
![Page 51: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/51.jpg)
Configuración y Optimización Configuración Personalizada
Opciones de Traza Enabled
Se almacena información de traza . Esta información se puede consultar através de la siguiente página http://site/trace.axd
RequestLimit Limita el almacenamiento de las trazas a un límite de peticiones
PageOutput Se muestran la información de las trazas en la página.
TraceMode Permite ordenar la información de las trazas por tiempo o categoría.
![Page 52: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/52.jpg)
Configuración y Optimización Configuración Personalizada Escribir al log de trazas
Trace.Write(“Page_Load”,”Entering Event”)Trace.Warn(“GetCustomer”,”Invalid Argument”)
![Page 53: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/53.jpg)
Demostración 4Configuración y
Optimización
Configuración ASP.NET
![Page 54: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/54.jpg)
Configuración y Optimización Cacheo de Páginas
Páginas que no cambian frecuentemente
Incremento dramático de rendimiento
<%@ OutputCache Duration= "500" %>
![Page 55: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/55.jpg)
Configuración y Optimización Cacheando fragmentos User Control Datos que no cambian frecuentemente
<%@ OutputCache Duration=“60" %>
![Page 56: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/56.jpg)
Configuración y Optimización API’s de cacheo
Cachear datos programaticamente
Cache.Insert( _Key, _Value, _CacheDependency, _AbsoluteExpiration, _SlidingExpiration, _Priority, _PriorityDecay, _Callback)
![Page 57: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/57.jpg)
Configuración y Optimización Cache API’s
Key String usado para buscar el elemento
cacheado
Value Elemento almacenado en caché
CacheDependency El elemento en caché puede expirar
automáticamente cuando un fichero, directorio u otro elemento en caché cambie
![Page 58: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/58.jpg)
Configuración y Optimización Cache API’s AbsoluteExpiration
Un elemento en caché puede expirar en algún tiempo fijo
SlidingExpiration Un elemento en caché puede expirar después de
una cierta cantidad de inactividad Priority
Elementos con prioridad baja son eliminados antes que elementos con prioridad alta
PriorityDecay Dentro de un rango de prioridad, este elemento
expira antes o después que otro elemento
![Page 59: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/59.jpg)
Demostración 5 Configuración y Optimización
Cacheo
![Page 60: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/60.jpg)
Configuración y Optimización Monitorizando Aplicaciones ASP.NET
Herramientas de monitorización Performance Monitor Tracing Control de servicios y monitorización
![Page 61: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/61.jpg)
Configuración y Optimización Contadores de rendimiento
Algunos contadores son ahora mas específicos de aplicación como oposición al tradicional ASP que son mas específicos para servidor
Grupos de contadores Contadores de rendimiento globales Contadores específicos de aplicación
![Page 62: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/62.jpg)
Configuración y Optimización Contadores globales de rendimiento
Contadores Globales de Rendimiento Reinicio de Aplicaciones Aplicaciones en ejecución Peticiones Encoladas Tiempo de espera de peticiones
![Page 63: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/63.jpg)
Configuración y Optimización Contadores especificos de aplicación
Contadores de rendimiento de Aplicaciones Entradas totales en caché Cache Total Hit Ratio Bytes pedidos en total Ejecuciones Pedidas Timed Out Pedidos Time Out de sesiones
![Page 64: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/64.jpg)
Configuración and Monitorización
Clase PerformanceCounter La clase PerformanceCounter permite acceder a los
datos de los contadores desde código
Dim Req_Bytes_Total As New PerformanceCounter(“asp .net applications", “Request Bytes Out Total”, _Total_)
Dim s as Integer
S = Req_Bytes_Total.NextValue()
![Page 65: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/65.jpg)
Configuración and Monitorización
Tracing Habilitar Tracing para una página específica
<%@ Page trace=true Language="vb" AutoEventWireup="false" Codebehind="Write_Trace_Info.aspx.vb" Inherits="Opt_Monitor.Write_Trace_Info"%>
Escribiendo sentencias de traza personalizadas
Trace.Write(“Custom Trace”, “Begin Load DataSet”)
![Page 66: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/66.jpg)
Configuración and Monitorización Accediendo a Servicios Clase ServiceController
Permite acceder a servicios locales o remotos Constructor
Nombre del servicio como parámetro Métodos
Stop Start Pause WaitForStatus
Srv.WaitForStatus(ServiceControllerStatus.Stopped, System.TimeSpan.FromSeconds(30))
Te permite esperar a que un servicio cambie al estado deseado antes de seguir
Propiedades MachineName
Obtiene o asigna el nombre de la máquina
![Page 67: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/67.jpg)
Configuración and Monitorización Comprobando el estado de un servicio Comprobando el estado de un servicio
Protected Sub CheckServiceState(ByVal ServiceName As String) as String
Dim Srv As New ServiceController(ServiceName)Select Case Srv.Status
Case ServiceControllerStatus.Running CheckServiceState = "Started" Case ServiceControllerStatus.Stopped CheckServiceState = "Stopped"
Case Else CheckServiceState = "Unknown"
End Select End Sub
![Page 68: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/68.jpg)
Demostración 6Configuración y
Optimización
ASP .NET Optimización y Monitorización
![Page 69: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/69.jpg)
Web Service Agenda
¿Qué es un Web Service? Llamando a un Web Service desde un
browser Llamando a un Web Service usando un
proxy Creando un Web Service usando C# Creando y llamando un Web Service
usando Visual Studio .NET
![Page 70: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/70.jpg)
Web Service Características de Web Services
Permite que aplicaciones se comuniquen a través de internet Independiente del lenguaje Independiente del protocolo Independiente de la plataforma Arquitectura sin estados
![Page 71: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/71.jpg)
Web Service Modelo de ejecución de Web Services
![Page 72: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/72.jpg)
Web Service Ejemplos de Web Services existentes
http://www.xmethods.net http://www.gotdotnet.com
![Page 73: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/73.jpg)
Web Service Llamando a un Web Service desde un browser 1/2
http://server/vroot/webservice.asmx
![Page 74: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/74.jpg)
Web Service Llamando a un Web Service desde un browser 2/2
Pasar el nombre del método y todos los parámetros requeridos en la URL del Web Servicehttp://server/vroot/webservice.asmx/method?param=value
Se devuelve el resultado en XML
![Page 75: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/75.jpg)
Web Service Compilando un fichero .asmx dentro de un proxy Una clase proxy
Parece la clase original pero no tiene ninguna lógica de la aplicación
Permite a un cliente acceder a un Web Service como si fuera un objeto COM local
Creando una clase proxy desde un fichero .asmxWsdl /l:vb /n:mynamespaces http://location/service.asmx?wsdl
![Page 76: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/76.jpg)
Web Service Compilando el proxy dentro de una dll
Compilando una clase proxy dentro de una DLL
vbc /out:..\bin\proxyclassname.dll
/t:library /r:System.Web.Services.dll
/rs:system.dll /r:system.xml.dll
proxyclassname.dll
La dll se publica en la carpeta /bin
![Page 77: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/77.jpg)
Web Service Llamando métodos de Web Service
Creando una instancia del proxymyStore.Store myStoreProxy;
myStoreProxy= new myStore.Store();
Llamando a métodosDataSet ds;
ds=myStoreProxy.products();
![Page 78: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/78.jpg)
Web Service Escribiendo un Web Service Añadiendo una Directiva de página
<%@ WebService Language=“C#” Class=“MyStore” %>
Importando namespacesusing System;
using System.Web.Services;
Definiendo una clase con Web Methodspublic class MyStore{
<WebMethod()>public int price(){
}
}
![Page 79: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/79.jpg)
Web Service Llamando a un Web Service usando Visual Studio .NET Llamando a un Web Service
Abrir una aplicación Web Crear una referencia Web para el Web
Service usando la opción Add Web Reference
Crear una instancia del Web Service Llamar a las funciones del Web Service Compilar el proyecto
![Page 80: ASP.NET Con Visual Studio.NET. Agenda Introducción Web Forms Uso del Global.asax Como trabajar con estados Como securizar aplicaciones ASP.NET Uso del](https://reader036.vdocuments.site/reader036/viewer/2022081204/54a78c73497959eb6d8b4932/html5/thumbnails/80.jpg)
Recursos adicionales
http://www.microsoft.com/spanish/msdn/spain
http://www.microsoft.com/spanish/msdn/wmatrix.asp
http://www.microsoft.com/spanish/msdn/comunidad/dce
http://www.microsoft.com/spanish/msdn/spain/eventos/presentaciones/online.asp
http://www.asp.net/ http://www.microsoft.com/spanish/msdn/
comunidad/uni.net