Проверка прав доступа пользователей к виртуальному пути при среднем доверии
Если я хочу проверить, имеет ли текущий пользователь доступ к заданному URL-адресу с полным доверием, я могу использовать такой код.
IPrincipal user = context.User
?? new GenericPrincipal(new GenericIdentity(
string.Empty,
string.Empty),
new string[0]);
UrlAuthorizationModule.CheckUrlAccessForPrincipal(virtualPath, user, "GET");
К сожалению, это не работает в среде со средним доверием, так как CheckUrlAccessForPrincipal
Метод имеет следующие флаги.
[SecurityPermission(SecurityAction.Demand, Unrestricted=true)]
Есть ли способ, которым я могу проверить, есть ли у пользователя виртуальный путь в средстве доверия? Я переписываю путь в HttpModules PostAuthorizeRequest
обработчик событий, поэтому мне нужно иметь возможность проверять разрешения после перезаписи.