Установка подтекста дает ошибку в среднем уровне доверия
Я пытаюсь установить Subtext в среде со средним уровнем доверия (хост: Crystaltech) и получаю следующую ошибку (см. Ниже). Я смог выполнить настройку администрирования, но когда он пытается зайти в блог для реального использования, бум.
Я знаю, что могу "обновить" среду до уровня полного доверия, но я хочу понять, почему происходит ошибка, и последствия этого перехода к полному доверию, прежде чем я это сделаю.
Расширить этот вопрос; Каковы "Уровни доверия"?
Исключение безопасности
Описание: приложение попыталось выполнить операцию, не разрешенную политикой безопасности. Чтобы предоставить этому приложению необходимые разрешения, обратитесь к системному администратору или измените уровень доверия приложения в файле конфигурации.
Сведения об исключении: System.Security.SecurityException: сбой запроса разрешения типа "System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture= нейтральный, PublicKeyToken=b77a5c561934e089".
Ошибка источника:
Во время выполнения текущего веб-запроса было сгенерировано необработанное исключение. Информация о происхождении и местоположении исключения может быть идентифицирована с помощью трассировки стека исключений ниже.
Трассировки стека:
[SecurityException: запрос разрешения типа "System.Security.Permissions.SecurityPermission, mscorlib, версия = 2.0.0.0, Culture = нейтральный, PublicKeyToken=b77a5c561934e089" не выполнен.]
System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal (String virtualPath, IPrincipal пользователь, String глагол) +47
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandlerForUrl (String url) +66
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.ProcessHandlerTypePage (элемент HttpHandler, контекст HttpContext) +143
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandler (контекст HttpContext, String requestType, String url, String path) +340
System.Web.HttpApplication. ExecuteStep (шаг IExecutionStep, логическое и завершено синхронно) +161
3 ответа
Я не думаю, что есть другой способ обойти ошибку, кроме перехода к полному доверию или удаления вызова CheckUrlAccessForPrincipal() и перекомпиляции.
Но, судя по всему, эта конкретная проблема уже была исправлена в подтексте SVN (редакция 3290). Они также добавили новую задачу сборки для подтекста 2.0.1, которая должна включать исправление. Я думаю, что это будет выпущено, когда он будет готов.
Уровни доверия на самом деле просто указатели на некоторые файлы security.config. Уровни доверия по умолчанию определены в C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\web.config, "Среднее" доверие, указывающее на web_mediumtrust.config.
Что касается исключения, то при взгляде на System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal() с отражателем обнаруживается, что метод приписывается с [SecurityPermission(SecurityAction.Demand, Unrestricted=true)], то есть требуется неограниченное разрешение безопасности., который не работает под средним доверием.
Больше зерна, чтобы добавить к мельнице от csgero:
http://www.kowitz.net/archive/2008/08/15/upgrading-to-subtext-2.0-fail.aspx
Есть крошечный комментарий от Фила Хаака, я думаю, он сейчас занят другими делами:)