В настоящее время я работаю над приложением ASP .NET, которое включает в себя вход пользователя в систему с использованием аутентификации Windows. Это приводит к тому, что для HTTPContext.User и Thread.Principal должны быть заданы те же учетные данные, что и для входа пользователя в систему, что является ожидаемым поведением, а WindowsIdentity остается в качестве пользователя IIS .NET AppPool.
Недавно я заметил в журналах приложений, что, по-видимому, существует один запрос (обычно это 5-й запрос на загрузку страницы), когда WindowsIdentity запускается как пользователь IIS, но в конечном итоге поднимается до пользователя, который ведет журнал. в.
Похоже, что это происходит только тогда, когда пользователь обращается к корневому пути (например, http://localhost/). Если я укажу любой другой точный путь, такой как http://localhost/index.aspx, этот запрос не появляется, и Идентичность Windows никогда не меняется.
Просматривая (довольно большую) кодовую базу, я могу найти только один метод, который олицетворяет WindowsIdentity, но этот метод не вызывается отдельно от определенных обстоятельств на конкретной странице.
Мне было интересно, почему это может происходить и была ли какая-то причина, по которой IIS мог делать это сам по себе.