Установка подтекста выдает ошибку на среднем уровне доверия

StackOverflow https://stackoverflow.com/questions/175075

Вопрос

Я пытаюсь установить Подтекст в среде среднего уровня доверия (хост: Кристалтех) и я получаю следующую ошибку (см. Ниже).Я смог выполнить настройку администрирования, но когда он пытается зайти в блог для реального использования, бум.

Я знаю, что мог бы "обновить" среду до уровня полного доверия, но я хочу понять, почему возникает ошибка, и последствия перехода к полному доверию, прежде чем я это сделаю.

Чтобы подробнее остановиться на этом вопросе;что такое "Уровни доверия"?

Исключение из правил безопасности

Описание: Приложение попыталось выполнить операцию, не разрешенную политикой безопасности .Чтобы предоставить этому приложению требуемое разрешение, пожалуйста, свяжитесь с вашим системным администратором или измените уровень доверия приложения в файле конфигурации.

Сведения об исключении:Система.Безопасность.Исключение SecurityException:Запрос разрешения системы типа '.Безопасность.Разрешения.Разрешение на безопасность, mscorlib, версия = 2.0.0.0, Культура = нейтральная, PublicKeyToken=b77a5c561934e089' сбой.

Ошибка источника:

Было сгенерировано необработанное исключение во время выполнения текущего веб-запроса.Информация о происхождении и местоположении исключения может быть идентифицирована с помощью приведенной ниже трассировки стека исключений .

Трассировка стека:

[Исключение SecurityException:Запрос на получение разрешения системы типа '.Безопасность.Разрешения.Разрешение на безопасность, mscorlib, версия = 2.0.0.0, Культура = нейтральная, PublicKeyToken=b77a5c561934e089' сбой.]
System.Web.Security.UrlAuthorizationModule.Проверьте urlaccessforprincipal(строка VirtualPath, IPrincipal user, строка глагол) +47
Subtext.Framework.urlManager.UrlReWriteHandlerFactory.GetHandlerForUrl(строка url) +66
Subtext.Framework.urlManager.UrlReWriteHandlerFactory.ProcessHandlerTypePage(HttpHandler элемент, контекст HttpContext) +143
Subtext.Framework.urlManager.UrlReWriteHandlerFactory.getHandler(HttpContext контекст, тип запроса строки, строка url, путь к строке) +340
System.Web.HttpApplication. Приложение System.Web.HttpApplication.MapHttpHandler(HttpContext контекст, тип запроса строки, путь виртуального пути, строка Переведенный путь, логическое значение useAppConfig) +175 System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Выполнить() +128 System.Web.HttpApplication.ExecuteStep(IExecutionStep шаг, логическое значение и выполняется синхронно) +161

Это было полезно?

Решение

Я не думаю, что есть другой способ обойти ошибку, кроме перехода к полному доверию или удаления вызова CheckUrlAccessForPrincipal() и перекомпиляции.

Но, судя по всему, эта конкретная проблема уже исправлена в подтексте SVN (редакция 3290).Они также добавили новую задачу сборки для subtext 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 / Архив / 2008/08/15 / модернизация к подтексту-2,0-fail.aspx

Есть крошечный комментарий от Фила Хаака, я думаю, он сейчас занят другими делами:)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top