La instalación de subtexto da error en el nivel de confianza Medio
-
05-07-2019 - |
Pregunta
Estoy intentando instalar Subtext en un entorno de nivel de confianza medio (host: Crystaltech ) y obtengo el siguiente error (ver más abajo). Pude hacer la configuración de administración, pero cuando intenta ir al blog para un uso real, boom.
Sé que podría " actualizar " el entorno a un nivel de confianza total, pero quiero entender por qué ocurre el error y las ramificaciones de ese cambio a la confianza total antes de que lo haga.
Para ampliar esta pregunta; ¿Cuáles son los " Niveles de confianza " ;?
Excepción de seguridad
Descripción: El aplicación intentó realizar una Operación no permitida por la seguridad. política. Para otorgar a esta solicitud la permiso requerido por favor contacte Su administrador del sistema o cambio El nivel de confianza de la aplicación en el archivo de configuración.
Detalles de la excepción: System.Security.SecurityException: Solicitud de permiso de tipo. 'System.Security.Permissions.SecurityPermission, mscorlib, versión = 2.0.0.0, Cultura = neutral, PublicKeyToken = b77a5c561934e089 ' fallado.
Error de fuente:
Se generó una excepción no controlada durante la ejecución de la corriente solicitud web Información sobre el Origen y ubicación de la excepción. se puede identificar utilizando la excepción apilar traza a continuación.
Rastreo de pila:
[SecurityException: solicitud de permiso de tipo 'System.Security.Permissions.SecurityPermission, mscorlib, versión = 2.0.0.0, Cultura = neutral, PublicKeyToken = b77a5c561934e089 ' fallado.]
System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal (String virtualPath, usuario principal, String verbo) +47
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandlerForUrl (String url) +66
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.ProcessHandlerTypePage (HttpHandler item, contexto HttpContext) +143
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandler (HttpContext) contexto, String requestType, String url, String path) +340
System.Web.HttpApplication.MapHttpHandler (HttpContext) contexto, String requestType, Ruta de VirtualPath, String pathTranslated, Boolean useAppConfig) +175 System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +128 System.Web.HttpApplication.ExecuteStep (IExecutionStep paso, Boolean & amp; completado de forma síncrona) +161
Solución
No creo que exista otra forma de evitar el error que no sea pasar a la plena confianza o eliminar la llamada a CheckUrlAccessForPrincipal () y volver a compilar.
Pero por el aspecto de las cosas, este problema en particular ya se ha corregido en el subtexto SVN (revisión 3290). También han agregado una nueva tarea de compilación para el subtexto 2.0.1 que debería incluir la corrección. Supongo que se lanzará cuando esté listo.
Otros consejos
Los niveles de confianza son en realidad solo punteros a algunos archivos de configuración de seguridad. Los niveles de confianza de dafault se definen en C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ web.config, " Medio " Confíe apuntando a web_mediumtrust.config.
En cuanto a la excepción, echar un vistazo a System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal () con reflector revela que el método se atribuye con [SecurityPermission (SecurityAction.Demand, Unrestricted = true)], lo que significa que requiere un permiso de seguridad sin restricciones, que no se ejecuta bajo confianza media.
Más información sobre agregar al molino desde csgero:
http: // www .kowitz.net / archive / 2008/08/15 / upgrade-to-subtext-2.0-fail.aspx
Hay un pequeño comentario de Phil Haack, supongo que está ocupado con otras cosas en este momento :)