У меня есть приложение asp.net intranet с использованием проверки подлинности Windows. Я создал приложение много лет назад с VS 2005, и бит проверки подлинности Windows работал отлично. Мой web.config имеет следующий (внутри конфигурации -> system.web элемент):HttpContext.Current.User не заполнен аутентификацией Windows включен
<authentication mode="Windows" />
<authorization>
<deny users="?"/>
</authorization>
Я проверить это в Firefox, чтобы подтвердить, что учетные данные необходимы, и на самом деле я пробужден для моих сетевых учетных данных при первом доступ к сайту, и мне отказывают в том, что они недействительны.
Однако, когда я пытаюсь получить доступ к HttpContext.Current.User.Identity, объект имеет пустые строки для Name и AuthenticationType и Authenticated = false. Я подумал, что мне может понадобиться включить WindowsTokenRoleProvider после просмотра интерфейсов, и это ничего не изменило.
<roleManager defaultProvider="WindowsProvider" enabled="true" cacheRolesInCookie="false">
<providers>
<clear/>
<add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider"/>
</providers>
</roleManager>
Две вещи, которые я сделал, так как в последний раз я видел его работу является обновлением проекта в VS 2008 с помощью мастера преобразования, и я положил его в течение нескольких месяцев, в то время как мои сотрудники могут работали над этим здесь или там. Я был уверен, что единственное, что влияет на мой User.Identity, - это значения в упомянутом выше web.config, но, видимо, я делаю что-то неправильно. Кто-нибудь другой сталкивается с подобной проблемой или видит что-то, что я делаю неправильно? Благодарю.
Вы протестировали его в IE? –
Yep ... протестирован и в IE. Единственная причина, по которой я упомянул Firefox, - это то, что IE автоматически передает ваши учетные данные, тогда как FF заставляет вас вводить логин через подсказку. Вот как я знаю, что блокирую анонимный доступ, но я все еще получаю пустую информацию об User.Identity – Rich
Когда вы говорите «когда я пытаюсь получить доступ к HttpContext.Current.User.Identity», в этот момент жизненного цикла страницы вы это делаете? – Bullines