Как определить, является ли текущее приложение Medium Trust - PullRequest
5 голосов
/ 13 июня 2011

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

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

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

1 Ответ

3 голосов
/ 13 июня 2011

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

Определение текущего уровня доверия в 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, работающем со средним уровнем, а затем с полным доверием, и он делает то, что говорит на жестяной панели.

...