Аутентификация форм доступа из отдельного обработчика HTTP - PullRequest
1 голос
/ 02 января 2011

Я только что прочитал о реализации моего собственного обработчика HTTP для ASP.NET 4.0 и IIS7.Это выглядит действительно круто.Мне нужна специальная обработка для ZIP-файлов, и кажется, что обработчик HTTP - это идеальное решение.

Однако меня беспокоит то, что обработчик должен находиться в отдельной сборке.Итак, как я могу получить доступ к остальной части моего приложения из этой сборки?

В частности, я хотел бы определить, прошел ли пользователь аутентификацию, и перенаправить его на страницу входа, если это не так.Но User.Identity.IsAuthenticated и т. Д. Не будут доступны из моего обработчика.

(Да, я знаю, что есть способы подойти без обработчика HTTP, но они не подходят для моих конкретных потребностей.)

1 Ответ

1 голос
/ 02 января 2011

User.Identity.IsAuthenticated и т. Д. Не будут доступны из моего обработчика.

Метод ProcessRequest дает вам текущий HTTP-контекст, из которого вы можете определить, аутентифицирован ли пользователь:

public void ProcessRequest(HttpContext context)
{
    if (!context.User.Identity.IsAuthenticated)
    {
        // the user is not authenticated
    }
    ...
}
...