В моем веб-приложении ASP.net после аутентификации пользователя с помощью проверки подлинности форм я пытаюсь прочитать имя пользователя от HttpContext.Current.User.Identity.Name
.ASP.net: HttpContext.Current.User.Identity.Name пуст в IIS 7.5, но не на IIS Express
Когда я запускаю это на своей персональной машине, использующей IIS Express, это работает отлично. Когда я запускаю его на сервере под IIS 7.5, это выражение всегда оценивается до string.Empty
.
Почему это и как его можно смягчить?
Примечание: это не дубликат «HttpContext.Current.User.Identity.Name is Empty», потому что этот вопрос касается веб-сервера, встроенного в Visual Studio.
Примечание 2: В моем случае анонимный доступ не отключен. Если это действительно является причиной проблемы, можете ли вы объяснить, почему?
Спасибо! Любая идея, почему в IIS Express это работает? – urig
Я предполагаю, что у него уже есть учетные данные, потому что он работает локально. – oppassum
Правильный способ получить информацию для входа в систему - через 'Page.User' или' Controller.User'. Кроме того, IIS и IIS Express отличаются, https://blog.lextudio.com/2015/04/web-application-differences-in-visual-studio-and-iis/ –