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

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

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

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

1 Ответ

3 голосов
/ 10 января 2009

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

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

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

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

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

...