Исключение безопасности (приложение попыталось выполнить операцию, не разрешенную политикой безопасности))

у нас возникает проблема со следующим исключением безопасности, когда мы пытаемся открыть страницу входа в систему администратора.

 Security Exception
 Description: The application attempted to perform an operation not allowed by the security policy.
To grant this application the required 
permission please contact your system administrator or change the   application trust level in the configuration file. 


 Exception Details: System.Security.SecurityException: Request failed.

в первую очередь мы используем членство для операций аутентификации пользователя у нас есть два отдельных приложения один для администратора один для пользователя, каждый из которых имеет свой собственный файл Web.Config.

Пользовательские данные загружаются в wwwroot, но загружаются данные администратора в wwwroot/admin, а в admin webconfig мы определяем Login.aspx как страницу по умолчанию для admin (когда пользователь вводит mysite.com/admin), и мы создали виртуальный каталог для администратора (поскольку у нас есть два файла Web.Config) с именем /admin с помощью пути mysite.com/wwwroot/admin

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

у нас также есть папка app_Webreference для некоторых наших веб-сервисов, которые могут быть причиной проблемы, но я не уверен. Мы попытались изменить уровень доверия безопасности, но хост не позволяет нам это делать, и если это было от хоста, почему бы нам не столкнуться с этой проблемой с некоторыми другими нашими сайтами, так что в настоящее время у меня нет идеи, которая кажется проблемой, но это действительно проблематично, пожалуйста, помогите мне

Большое спасибо

Ответ 1

Мне также помогло, просто добавлено несколько строк в web.config, чтобы разрешить полный уровень доверия в моем веб-приложении.

<system.web>
   <trust level="Full" />
</system.web>

Ответ 2

Я нашел эту статью в MSDN, которая, по моему мнению, уместна (детали исключений выглядят одинаково). В нем говорится, что он применяется к ASP.NET 1.0 и 1.1, но он также с октября 2005 года, поэтому вполне может быть не обновлен, чтобы явно указать, какую версию вы используете (предположительно >= 4.0):

" ИСПРАВЛЕНИЕ: Как разрешить исключение безопасности (ASP.NET)?" от Anand Narayanaswamy MVP.


Симптомы

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

Исключение:

System.Security.SecurityException: Request Failed

Причина. Вышеупомянутая ошибка возникает, поскольку домен не помещается в свой собственный пул приложений в IIS, а также из-за отсутствия надлежащего уровня доверия в файле machine.config на сервере.

Разрешение

  • Создайте пул приложений для соответствующего домена с помощью служб IIS. Войдите на удаленный рабочий стол и откройте диспетчер IIS. Разверните дерево приложений. Щелкните правой кнопкой мыши и выберите "Создать" | Пул приложений и предоставить требуемые сведения.

  • Следующий шаг - разместить домен под вновь созданным пулом приложений. Чтобы выполнить это действие, разверните веб-сайты, помеченные деревом, а затем под ним веб-сайт по умолчанию. Выберите свое доменное имя, щелкните его правой кнопкой мыши и выберите пункт меню "Свойства". Выберите раскрывающееся поле с надписью "Пул приложений" и выберите новое имя пула приложений.

Примечание. Вы можете автоматически выполнить вышеупомянутые шаги с помощью некоторых популярных панелей управления хостингом, если вы их установили на сервере.

  1. Добавьте следующие строки кода в файл machine.config. Этот файл может быть расположен под папкой - Root Drive Name:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG
<location path="yourdomain.com" allowOverride="true">
    <system.web>
        <trust level="Full" originUrl=""/>
    </system.web>
</location>

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

(B) Замените yourdomain.com соответствующим доменным именем, в котором возникает проблема.

Предупреждение: Неправильная модификация файла machine.config вызовет проблемы с сервисом ASP.NET на сервере.

Ответ 3

Я только что решил, это может быть полезно для поздних читателей.

  • Открыть диспетчер IIS (ctrl + r inetmgr)
  • Перейти к функции просмотра вашего сайта
  • Нажмите "Уровни доверия .NET"
  • Установите уровень доверия вашего сайта на Полный (внутренний)

ИЛИ ЖЕ

Вставьте следующее в сайты web.config:

<system.web>
        <trust level="Full" />
  </system.web>