Los que trabajamos con Sharepoint, sobre todo si empezamos con el 2003, quién más o quién menos hemos acudido alguna vez a algún webpart de codeplex, o de los grandes Carlos Segura o Gustavo Vélez.
En muchas ocasiones, para que el webpart funcionase, teníamos que cambiar el Trust level del web.config, y ponerlo a FULL:
1 |
<span style="color: #606060" id="lnum1"> 1:</span> <span style="color: #0000ff"><</span><span style="color: #800000">trust</span> <span style="color: #ff0000">level</span><span style="color: #0000ff">="Full"</span> <span style="color: #ff0000">originUrl</span><span style="color: #0000ff">=""</span> <span style="color: #0000ff">/></span> |
Este atributo define las políticas de CAS (Code Access Security), que viene a ser, el qué puede hacer el código fuente de una aplicación.
En asp.net, por defecto, todo corre en modo Full, si no se indica lo contrario, pero Sharepoint define sus propios niveles de confianza, y esto hace que algunas operaciones no estén permitidas.
La siguiente tabla resume las características de cada Trust level que viene con asp.net.
Nivel | Características |
Full | Control total !! puedes formatear el disco duro desde una aspx… mola, eh? 🙂 |
High |
Puedes hacer casi de todo, pero no puedes:
|
Medium |
Este es el nivel que te encontrarás en la mayoría de aplicaciones asp.net de los proveedores de hosting, ya que te permite bastante control dentro del directorio de tu aplicación, pero no te deja salir de ahí. No puedes:
Respecto a las llamadas en red, si sería posible algunas de ellas, siempre que se defina un valor para el atributo “originUrl”, que permite definir una URL (o patrón de URL) a la que se permitiría hacer llamadas en red (por ejm usar el WebRequest). |
Low |
Sólo permite operaciones de lectura dentro de tu directorio. No puedes:
|
Minimal | Podrás sumar 2+2 y poco más 😉 |
En el caso de Sharepoint, además existen 2 niveles más:
- WSS_Minimal
- WSS_medium
Que están descritos en: http://msdn.microsoft.com/en-us/library/cc768613.aspx
Las políticas de seguridad se pueden personalizar, editando los ficheros de configuración que las definen. Dicho ficheros, vienen referenciados en el web.config:
1 |
<span style="color: #606060" id="lnum1"> 1:</span> <span style="color: #0000ff"><</span><span style="color: #800000">system.web</span><span style="color: #0000ff">></span> |
1 |
<span style="color: #606060" id="lnum2"> 2:</span> <span style="color: #0000ff"><</span><span style="color: #800000">securityPolicy</span><span style="color: #0000ff">></span> |
1 |
<span style="color: #606060" id="lnum3"> 3:</span> <span style="color: #0000ff"><</span><span style="color: #800000">trustLevel</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="Full"</span> <span style="color: #ff0000">policyFile</span><span style="color: #0000ff">="internal"</span><span style="color: #0000ff">/></span> |
1 |
<span style="color: #606060" id="lnum4"> 4:</span> <span style="color: #0000ff"><</span><span style="color: #800000">trustLevel</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="High"</span> <span style="color: #ff0000">policyFile</span><span style="color: #0000ff">="web_hightrust.config"</span><span style="color: #0000ff">/></span> |
1 |
<span style="color: #606060" id="lnum5"> 5:</span> <span style="color: #0000ff"><</span><span style="color: #800000">trustLevel</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="Medium"</span> <span style="color: #ff0000">policyFile</span><span style="color: #0000ff">="web_mediumtrust.config"</span><span style="color: #0000ff">/></span> |
1 |
<span style="color: #606060" id="lnum6"> 6:</span> <span style="color: #0000ff"><</span><span style="color: #800000">trustLevel</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="Low"</span> <span style="color: #ff0000">policyFile</span><span style="color: #0000ff">="web_lowtrust.config"</span><span style="color: #0000ff">/></span> |
1 |
<span style="color: #606060" id="lnum7"> 7:</span> <span style="color: #0000ff"><</span><span style="color: #800000">trustLevel</span> <span style="color: #ff0000">name</span><span style="color: #0000ff">="Minimal"</span> <span style="color: #ff0000">policyFile</span><span style="color: #0000ff">="web_minimaltrust.config"</span><span style="color: #0000ff">/></span> |
1 |
<span style="color: #606060" id="lnum8"> 8:</span> <span style="color: #0000ff"></</span><span style="color: #800000">securityPolicy</span><span style="color: #0000ff">></span> |
1 |
<span style="color: #606060" id="lnum9"> 9:</span> <span style="color: #0000ff"><</span><span style="color: #800000">trust</span> <span style="color: #ff0000">level</span><span style="color: #0000ff">="Full"</span> <span style="color: #ff0000">originUrl</span><span style="color: #0000ff">=""</span><span style="color: #0000ff">/></span> |
1 |
<span style="color: #606060" id="lnum10"> 10:</span> <span style="color: #0000ff"></</span><span style="color: #800000">system.web</span><span style="color: #0000ff">></span> |
Por ejemplo, si accedemos a:
C:WindowsMicrosoft.NETFrameworkv2.0.50727CONFIG
veremos los ficheros .config referenciados en el XML anterior, y aunque no es tarea sencilla, podríamos editarlos y personalizarlos a nuestras necesidades.
Nada más, espero haber aclarado un poco este tema y las restricciones de cada nivel de confianza.
Saludos!!.
1 junio, 2010 at 2:31 pm
:O muy bueno, sirve mucho y
«Full Control total !! puedes formatear el disco duro desde una aspx… mola, eh? :)» la rompe jaja 🙂 muy buena