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

È stato utile?

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 :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top