Установка подтекста дает ошибку в среднем уровне доверия - PullRequest
0 голосов
/ 06 октября 2008

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

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

Чтобы расширить этот вопрос; Что такое «уровни доверия»?

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

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

Сведения об исключении: System.Security.SecurityException: Запрос разрешения типа «System.Security.Permissions.SecurityPermission, mscorlib, версия = 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 context, String requestType, String url, String path) + 340
System.Web.HttpApplication.MapHttpHandler (HttpContext context, String requestType, Путь к VirtualPath, строка pathTranslated, Boolean useAppConfig) +175 System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +128 System.Web.HttpApplication.ExecuteStep (IExecutionStep шаг, логическое и завершено синхронно) + 161

Ответы [ 3 ]

1 голос
/ 07 октября 2008

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

Но, судя по всему, эта конкретная проблема уже была исправлена ​​в подтексте SVN (редакция 3290). Они также добавили новую задачу сборки для подтекста 2.0.1, которая должна включать исправление. Я думаю, это будет выпущено, когда он будет готов.

1 голос
/ 06 октября 2008

Уровни доверия - это просто указатели на некоторые файлы 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)], что означает неограниченное разрешение безопасности, которое не работает при среднем доверии.

0 голосов
/ 06 октября 2008

больше зерна до добавить на мельницу от csgero:

http://www.kowitz.net/archive/2008/08/15/upgrading-to-subtext-2.0-fail.aspx

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

...