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

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

Вопрос

В моем приложении есть HttpModule, который подключается к событию Authenticate FormsAuthenticationModule со следующим кодом:

public void Init(HttpApplication context)
{
    FormsAuthenticationModule faModule =
        (FormsAuthenticationModule)context.Modules["FormsAuthentication"];
    faModule.Authenticate +=
        new FormsAuthenticationEventHandler(faModule_Authenticate);
}

К сожалению, вызов context.Modules не выполняется, поскольку приложение должно работать в среде со средним уровнем доверия. Есть ли другой способ, которым я могу подключиться к этому событию?

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

Решение

Это сложный вопрос - вы даже не можете получить доступ к коллекции модулей из своего файла глобального приложения.

Вы можете попробовать вызвать свой пользовательский код из обработчика AuthenticateRequest в Global:

protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
    // Call your module's code here..
}

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

Кроме предоставления AspNetHostingPermission (, как подробно описано для других разрешений здесь ) на ваш сайт на уровне машины web.config, у меня нет идей!

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