Request.ServerVariables[LOGON_USER] или Current.User.Identity.Name Пусто

Я использую проверку подлинности с помощью форм, с классическим пулом приложений. Я включил проверку подлинности с помощью форм и анонимный доступ и отключил проверку подлинности Windows. Я все еще не могу прочитать LOGON_USER или IPrincipal.Identity.Name.

В IE9 я настроил аутентификацию пользователя для прохождения через автоматический вход с текущим именем пользователя и паролем.

Тем не менее, я все еще не могу получить текущего вошедшего в систему пользователя.

Что может отсутствовать? это критическое изменение в IIS7.5 или изменение в IE9?

Примечание. Я не могу просто включить проверку подлинности Windows, поскольку этот сайт используется как внутри, так и снаружи. Кроме того, клиент хочет, чтобы его перенаправляли на страницу входа в систему, а не запрашивали ввод пользователя/пароля.


person Jake    schedule 26.10.2011    source источник


Ответы (1)


При переключении на классический он возвращал статус 403, он не мог обработать запрос.

В конце концов я изменил таблицу маршрутов, чтобы использовать такие расширения:

        routes.MapRoute(
            "Default", // Route name
            "{controller}.mvc/{action}/", // URL with parameters
            new { controller = "Login", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );

        routes.MapRoute("Root", string.Empty, new { controller = "Login", action = "Index"});

Затем я добавил новое сопоставление подстановочных знаков для обработки расширения *.mvc.

Также убедитесь, что вы используете правильный идентификатор пула приложений в моем решении. Я использую учетную запись NetworkService, и я также предоставил учетной записи NetworkService полные разрешения для веб-папки.

person Jake    schedule 31.10.2011