Как определить, является ли текущее применение среднего доверия
-
27-10-2019 - |
Вопрос
Я пытаюсь убедиться, что моя библиотека ASP.NET будет работать под средним доверием. Однако у меня проблемы с тем, что мне нужно отключить немного кода, если он запускается под средним доверием.
Как я могу определить из C#, если текущее приложение является средним доверием?
В частности, я пытаюсь прочитать раздел CustomErrors от web.config, и я получаю ошибки безопасности
Решение
В этой статье описывается механизм для определения уровня доверия:
Вот код на тот случай, если ссылка умрет:
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, а затем в полном доверии, и он делает то, что говорит на олово.
Не связан с StackOverflow