Пользовательская стандартная аутентификация перестала работать в IIS7

У меня есть приложение MVC ASP.NET с некоторыми УСПОКОИТЕЛЬНЫМИ сервисами, что я пытаюсь защитить использующую пользовательскую стандартную аутентификацию (они аутентифицируются против моей собственной базы данных). Я реализовал это путем записи HTTPModule.

Мне присоединили один метод к HttpApplication. Событие AuthenticateRequest, которое называет этот метод в случае ошибки аутентификации:

    private static void RejectWith401(HttpApplication app)
    {
        app.Response.StatusCode = 401;
        app.Response.StatusDescription = "Access Denied";
        app.CompleteRequest();
    }

Этот метод присоединен к HttpApplication. Событие EndRequest:

    public void OnEndRequest(object source, EventArgs eventArgs)
    {
        var app = (HttpApplication) source;
        if (app.Response.StatusCode == 401)
        {
            string val = String.Format("Basic Realm=\"{0}\"", "MyCustomBasicAuthentication");
            app.Response.AppendHeader("WWW-Authenticate", val);
        }
    }

Этот код добавляет, что "WWW - Аутентифицирует" заголовок, который говорит браузеру подбрасывать диалоговое окно входа в систему. Это работает отлично, когда я отлаживаю локально веб-сервер Visual Studio использования. Но это перестало работать, когда я выполняю его в IIS7.

Для IIS7 у меня есть встроенные модули аутентификации все выключенные, кроме анонимного. Это все еще возвращает ответ HTTP 401, но это, кажется, удаляет WWW - Аутентифицируют заголовок.

Какие-либо идеи?

5
задан manu08 18 April 2010 в 19:42
поделиться

2 ответа

Я разобрался. Проблема заключалась в том, что я назвал этот модуль «BasicAuthenticationModule», который конфликтовал с другим модулем, встроенным в IIS. После того, как я переименовал модуль, все заработало!

2
ответ дан 15 December 2019 в 06:20
поделиться

Несмотря на то, что он у вас работает, стоит еще подумать об этом:

http://wcfrestcontrib.codeplex.com/wikipage?title=Web % 20Authentication% 20Overview & referringTitle = Home

1
ответ дан 15 December 2019 в 06:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: