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

Я пытаюсь установить 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

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

Другие вопросы по тегам