Как определить, является ли текущее применение среднего доверия

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

  •  27-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь убедиться, что моя библиотека ASP.NET будет работать под средним доверием. Однако у меня проблемы с тем, что мне нужно отключить немного кода, если он запускается под средним доверием.

Как я могу определить из C#, если текущее приложение является средним доверием?

В частности, я пытаюсь прочитать раздел CustomErrors от web.config, и я получаю ошибки безопасности

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

Решение

В этой статье описывается механизм для определения уровня доверия:

Узнайте текущий уровень доверия в ASP.NET

Вот код на тот случай, если ссылка умрет:

AspNetHostingPermissionLevel GetCurrentTrustLevel() {
  foreach (AspNetHostingPermissionLevel trustLevel in
      new AspNetHostingPermissionLevel [] {
        AspNetHostingPermissionLevel.Unrestricted,
        AspNetHostingPermissionLevel.High,
        AspNetHostingPermissionLevel.Medium,
        AspNetHostingPermissionLevel.Low,
        AspNetHostingPermissionLevel.Minimal 
      } ) {
    try {
      new AspNetHostingPermission(trustLevel).Demand();
    }
    catch (System.Security.SecurityException ) {
      continue;
    }

    return trustLevel;
   }

   return AspNetHostingPermissionLevel.None;
}

Я только что проверил его в приложении ASP.NET MVC3, работающем на Medium, а затем в полном доверии, и он делает то, что говорит на олово.

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