Интегрированный режим конвейера IIS7: Context.User периодически равен нулю для аутентификации Windows - PullRequest
2 голосов
/ 19 мая 2010

Наш код основан на проверке значения Context.User.Identity в методе Global.asax Application_AuthenticateRequest (...) для получения некоторой информации о вошедшем в систему пользователе. Это прекрасно работает в классическом режиме, но когда я переворачиваю IIS для использования встроенного конвейера, «Context.User» возвращается как ноль, но только периодически. Есть идеи почему?

У меня есть и только виртуальная аутентификация Windows включена в виртуальном каталоге.

1 Ответ

5 голосов
/ 20 мая 2010

Интегрированный режим означает, что события конвейера ASP.NET выполняются одновременно с конвейером IIS, что означает следующее: 1) В классическом режиме - AuthenticateRequest в ASP.NET запускается после того, как IIS уже выполнил проверку подлинности (возможно, с использованием проверки подлинности Windows или базовой и т. Д.), И поэтому вам будет присвоено значение User Identity. 2) В IntegratedMode - AuthenticateRequest будет запускаться в одно и то же время, что приведет к тому, что он будет иметь нулевое значение. Вам следует рассмотреть возможность использования PostAuthenticateRequest, если вы хотите надежно получить Идентификацию пользователя (конечно, при условии, что у вас включен модуль аутентификации)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...