Decíamos en el anterior post que la manera recomendada de hostear múltiples aplicaciones ASP.NET sobre un servidor compartido era configurando el nivel de confianza a Medium. Esto, hay que decirlo, limita el uso de los recursos a los que se puede acceder... por ejemplo:
--No se puede acceder al proveedor de datos administrado ADO.NET OLEDB para acceder a bases de datos.
--No se puede acceder al log de eventos de Windows.
--No se puede usar reflection.
--No se puede acceder al registro de Windows.
--Sólo se puede comunicar con direcciones web externas especificadas en el elemento [trust] del web.config.
--Sólo se puede acceder a archivos que están dentro del directorio virtual de la aplicación.
Esas son las limitaciones, pero no es el fin del mundo... como ves también tiene muchos beneficios... y es que no podrán eliminarse tu aplicación web, ni hurgar en ella.
En realidad, decir que no se puede acceder al registro, ni al log de windows, etc...es mentir, sí se puede... a través de los que se llama políticas personalizadas. Sigue leyendo para que entiendas.
Digamos que tu aplicación necesita acceder a una base de datos ACCESS, para ello habría que usar OLEDB cierto?
pero hemos dicho que en un nivel de confianza Medium no se puede acceder a OLEDB... les mentí.... sí se puede... pero no por default, hay que crear una política personalizada del nivel Medium.
Veamos cómo se crea una política personalizada que lo haga:
1.- Ve a la ruta %windir%\Microsoft.NET\Framework\{Version}\CONFIG y copia el archivo web_MediumTrust.config... luego pégalo en la misma carpeta, ponle otro nombre... digamos oledb_mediumtrust.config
2.- Abre el archivo, fíjate que hay una sección [SecurityClasses], y dentro de ella están los elementos [SecurityClass... ahí debes añadir
[SecurityClass Name="OleDbPermission" Description="System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/]
3.- Luego, busca el elemento [NamedPermissionSets], dentro hay elementos [PermissionSet... allí debes añadir
[IPermission class="OleDbPermission" version="1" Unrestricted="true"/]
4.- Ahora modifica el archivo web.config que está en esa misma carpeta, añadiremos la nueva política personalizada que acabamos de crear. Para ello nos vamos a la zona del elemento [securityPolicy] y añadimos el trustLevel de name = CustomOleDB, referenciamos el archivo copiado y renombrado inicialmente, así quedaría:
[securityPolicy]
[trustLevel name="Full" policyFile="internal"/]
[trustLevel name="High" policyFile="web_hightrust.config"/]
[trustLevel name="Medium" policyFile="web_mediumtrust.config"/]
[trustLevel name="Low" policyFile="web_lowtrust.config"/]
[trustLevel name="Minimal" policyFile="web_minimaltrust.config"/]
[trustLevel name="CustomOleDB" policyFile="oledb_mediumtrust.config" /]
[/securityPolicy]
5.- Nada más, acabamos de crear una política personalizada... ahora para usarlo desde tu aplicación web, simplemente pones en tu web.config lo sgte:
[trustLevel = "CustomOleDB" /]
Papayita verdad??
Eso es todo, para despedirme quería recordarles algo: si Ud quiere comprobar si su aplicación está preparada para desenvolverse al 100% en un ambiente Medium, haga las pruebas necesarias en su servidor de pruebas... para esto sólo añade a tu web.config:
[trust level="Medium" originUrl="" /]
No hay comentarios.:
Publicar un comentario