L'installazione del sottotesto genera un errore nel livello di attendibilità Medio
-
05-07-2019 - |
Domanda
Sto cercando di installare Sottotesto in un ambiente di livello di attendibilità medio (host: Crystaltech ) e visualizzo il seguente errore (vedi sotto). Sono stato in grado di eseguire la configurazione dell'amministrazione, ma quando tenta di andare sul blog per un uso effettivo, boom.
So che potrei " aggiornare " l'ambiente a un livello di fiducia completo, ma voglio capire perché si sta verificando l'errore e le conseguenze di tale passaggio alla piena fiducia prima di farlo.
Espandere su questa domanda; quali sono i "livelli di fiducia"?
Eccezione di sicurezza
Descrizione: The applicazione ha tentato di eseguire un operazione non consentita dalla sicurezza politica. Per concedere questa domanda il permesso richiesto si prega di contattare il tuo amministratore di sistema o modifica il livello di attendibilità dell'applicazione in file di configurazione.
Dettagli eccezione: System.Security.SecurityException: Richiesta di autorizzazione del tipo 'System.Security.Permissions.SecurityPermission, mscorlib, Versione = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' fallito.
Errore di origine:
È stata generata un'eccezione non gestita durante l'esecuzione della corrente richiesta web. Informazioni riguardanti il origine e posizione dell'eccezione può essere identificato mediante l'eccezione traccia stack sotto.
Stack Trace:
[SecurityException: richiesta per permesso di tipo 'System.Security.Permissions.SecurityPermission, mscorlib, Versione = 2.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' fallito.]
System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal (String virtualPath, utente IPrincipal, String verbo) +47
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandlerForUrl (String url) +66
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.ProcessHandlerTypePage (HttpHandler elemento, contesto HttpContext) +143
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandler (HttpContext contesto, String requestType, String url, percorso stringa) +340
System.Web.HttpApplication.MapHttpHandler (HttpContext contesto, String requestType, Percorso VirtualPath, String pathTranslated, Boolean useAppConfig) +175 System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +128 System.Web.HttpApplication.ExecuteStep (IExecutionStep step, booleano e amp; completedSynchronously) 161
Soluzione
Non penso che ci sia un altro modo per aggirare l'errore oltre a passare alla fiducia completa o rimuovere la chiamata a CheckUrlAccessForPrincipal () e ricompilare.
Ma dall'aspetto delle cose, questo particolare problema è già stato corretto nel sottotesto SVN (revisione 3290). Hanno anche aggiunto una nuova attività di compilazione per il sottotesto 2.0.1 che dovrebbe includere la correzione. Immagino che verrà rilasciato quando sarà pronto.
Altri suggerimenti
I livelli di affidabilità sono in realtà solo dei puntatori ad alcuni file security.config. I livelli di affidabilità predefiniti sono definiti in C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ web.config, " Medium " fiducia che punta a web_mediumtrust.config.
Per quanto riguarda l'eccezione, dando un'occhiata a System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal () con reflector rivela che il metodo è attribuito con [SecurityPermission (SecurityAction.Demand, Unrestricted = true)], il che significa che richiede un autorizzazione di sicurezza illimitata, che non è in esecuzione con attendibilità media.
Ulteriori informazioni su aggiungi al mulino da csgero:
http: // www .kowitz.net / archive / 2008/08/15 / upgrade-to-sottotesto-2.0-fail.aspx
C'è un piccolo commento di Phil Haack, immagino che sia impegnato con altre cose in questo momento :)