Пользовательская аутентификация на уровне URL, используйте ISAPI все еще с .NET или есть новый способ? - PullRequest
1 голос
/ 03 февраля 2009

Существует ли способ аутентификации пользователей без использования IIS, кроме HTML?

Я знаю, что могу создать свой собственный фильтр ISAPI для IIS, но я хочу добиться того же с помощью кода .NET и не интегрировать его с IIS.

Есть ли способ сделать это сейчас, с последней версией .NET, или ISAPI еще впереди?

Ответы [ 2 ]

1 голос
/ 08 февраля 2009

Если вы хотите применить свою пользовательскую аутентификацию для всего содержимого, для IIS 5/6/7 требуется расширение ISAPI.

Способ Грега работает только для содержимого ASP.NET в IIS 5/6. Однако, если вы хорошо понимаете функцию интегрированного конвейера в IIS 7, вы можете настроить HTTP-модуль ASP.NET, например, Грега, для применения ко всему содержимому.

MSDN и IIS.net могут предоставить мне более подробную информацию, если вы продолжите поиск.

0 голосов
/ 03 февраля 2009

Вы можете использовать IHttpModule, чтобы делать такие вещи, например,

public class AuthModule : IHttpModule
{
    public void Init(HttpApplication context)
    {
        context.AuthenticateRequest += OnAuthenticateRequest;
        context.AuthorizeRequest += OnAuthorizeRequest;
    }

    private static void OnAuthenticateRequest(object sender, EventArgs e)
    {
        // authenticate the user here...
        // (note that the sender argument is an HttpApplication instance)
    }

    private static void OnAuthorizeRequest(object sender, EventArgs e)
    {
        // ...then authorize their attempted action here, if needed
    }
}
...