2011-06-12 10 views
5

Estoy intentando asegurarme de que mi biblioteca ASP.Net funcionará con confianza media. Estoy teniendo problemas, sin embargo, en eso tengo que desactivar un poco de código si se está ejecutando bajo confianza media.Cómo determinar si la aplicación actual es de confianza media

¿Cómo determino desde C# si la aplicación actual es de confianza media?

Específicamente, estoy tratando de leer la sección de web.config customErrors y yo estoy recibiendo errores de seguridad

Respuesta

3

En este artículo se describe aquí un mecanismo para determinar el nivel de confianza:

Finding out the current trust level in ASP.NET

Este es el código por si acaso el enlace muere:

AspNetHostingPermissionLevel GetCurrentTrustLevel() { 
    foreach (AspNetHostingPermissionLevel trustLevel in 
     new AspNetHostingPermissionLevel [] { 
     AspNetHostingPermissionLevel.Unrestricted, 
     AspNetHostingPermissionLevel.High, 
     AspNetHostingPermissionLevel.Medium, 
     AspNetHostingPermissionLevel.Low, 
     AspNetHostingPermissionLevel.Minimal 
     }) { 
    try { 
     new AspNetHostingPermission(trustLevel).Demand(); 
    } 
    catch (System.Security.SecurityException) { 
     continue; 
    } 

    return trustLevel; 
    } 

    return AspNetHostingPermissionLevel.None; 
} 

Acabo de probarlo en una aplicación ASP.NET MVC3 que se ejecuta en Medium y luego en Full trust y hace lo que dice en la lata.

+3

lol wow, eso es una forma bastante brutal de hacerlo – Earlz

+0

Supongo que si solo lo haces una vez en el tiempo 'Application_Start' entonces no es una gran cosa en el gran esquema de cosas. El problema es que cuanto menos confianza tengas, menos cosas puedes probar y esta es la única solución que puedes probar en todos los niveles de confianza. – Kev

Cuestiones relacionadas