У меня есть приложение для интрасети asp.net, использующее аутентификацию Windows. Я создал приложение несколько лет назад с VS 2005, и бит проверки подлинности Windows работал отлично. Мой web.config имеет следующее (внутри конфигурации -> элемент system.web):
<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, упомянутые выше, но, видимо, я что-то делаю не так. Кто-нибудь еще сталкивался с подобной проблемой или видел что-то, что я делаю неправильно? Спасибо.