Pregunta

Estoy tratando de asegurarme de que mi biblioteca ASP.NET funcione bajo Medium Trust. Sin embargo, tengo problemas, ya que necesito deshabilitar un poco de código si se está ejecutando bajo Medium Trust.

¿Cómo determino de C# si la aplicación actual es Medium Trust?

Específicamente, estoy tratando de leer la sección CustomErrors de Web.Config y recibo errores de seguridad

¿Fue útil?

Solución

Este artículo aquí describe un mecanismo para determinar el nivel de confianza:

Descubrir el nivel de confianza actual en ASP.NET

Aquí está el código en caso de que el enlace muera:

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;
}

Lo acabo de probar en una aplicación ASP.NET MVC3 que se ejecuta en medio y luego confianza y hace lo que dice en la lata.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top