L'installation de sous-texte génère une erreur dans le niveau de confiance moyen
-
05-07-2019 - |
Question
J'essaie d'installer Subtext dans un environnement de niveau de confiance moyen (hôte: Crystaltech ) et l’erreur suivante (voir ci-dessous). J'ai été capable de faire la configuration de l'administration mais quand il essaie d'aller sur le blog pour une utilisation réelle, boum.
Je sais que je pourrais "améliorer". l’environnement jusqu’à un niveau de confiance total, mais je veux comprendre pourquoi l’erreur se produit et les conséquences de ce déplacement vers une confiance totale avant que je ne le fasse.
Pour développer cette question; Quels sont les "niveaux de confiance"?
Exception de sécurité
Description: La application a tenté d'effectuer une opération non autorisée par la sécurité politique. Pour accorder à cette application le autorisation requise s'il vous plaît contacter votre administrateur système ou changer le niveau de confiance de l'application dans le fichier de configuration.
Détails de l'exception: System.Security.SecurityException: Demande de permission de type 'System.Security.Permissions.SecurityPermission, mscorlib, version = 2.0.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089 ' a échoué.
Erreur source:
Une exception non gérée a été générée. pendant l'exécution du courant demande web. Informations concernant le origine et lieu de l'exception peut être identifié à l'aide de l'exception trace de pile ci-dessous.
Trace de pile:
[SecurityException: demande du permission de type 'System.Security.Permissions.SecurityPermission, mscorlib, version = 2.0.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089 ' a échoué.]
System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal (Chaîne virtualPath, utilisateur IPrincipal, String verbe) +47
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandlerForUrl (String url) +66
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.ProcessHandlerTypePage (HttpHandler item, contexte HttpContext) +143
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandler (HttpContext contexte, String requestType, String url, chemin de la chaîne) +340
System.Web.HttpApplication.MapHttpHandler (HttpContext contexte, String requestType, Chemin VirtualPath, chaîne pathTranslated, utilisation booléenneAppConfig) +175 System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +128 System.Web.HttpApplication.ExecuteStep (IExecutionStep step, Boolean & amp; terminéSynchrone) +161
La solution
Je ne pense pas qu'il existe un autre moyen de contourner l'erreur que de passer en confiance totale ou de supprimer l'appel de CheckUrlAccessForPrincipal () et de recompiler.
Mais, à première vue, ce problème particulier a déjà été corrigé dans le sous-texte SVN (révision 3290). Ils ont également ajouté une nouvelle tâche de génération pour le sous-texte 2.0.1, qui devrait inclure le correctif. Je suppose que cela sera publié quand il sera prêt.
Autres conseils
Les niveaux de confiance ne sont en réalité que des pointeurs sur certains fichiers security.config. Les niveaux de confiance par défaut sont définis dans C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ web.config, " Medium " confiance pointant vers web_mediumtrust.config.
Comme pour l’exception, jeter un coup d’œil à System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal () avec un réflecteur révèle que la méthode est attribuée à [SecurityPermission (SecurityAction.Demand, Unrestricted = true)], ce qui signifie qu’elle nécessite un autorisation de sécurité illimitée, dont l'exécution n'est pas sous confiance moyenne.
Plus de ressources à ajouter au moulin de csgero:
http: // www .kowitz.net / archive / 2008/08/15 / upgradeing-to-subtext-2.0-fail.aspx
Il y a un petit commentaire de Phil Haack, je suppose qu'il est occupé avec d'autres choses en ce moment:)