В этом чрезвычайно полезном резюме Удостоверения для различных конфигураций аутентификации IIS7 от Майка О'Брайена, он дает обзор того, как IIS 7 работает с аутентификацией для различных настроек (я не мог ' Найти аналогичное резюме для IIS 6 (это версия, которую мы используем).
Мы установили аутентификацию на встроенную аутентификацию Windows; анонимный доступ отключен, и я не использую олицетворение. Приложение asp.net находится во внутренней сети, но я не контролирую (и очень мало знаю), сколько доменов существует, как они взаимодействуют друг с другом и т. Д. В соответствии со статьей выше, я должен получить одну и ту же информацию пользователя для всех трех:
Thread.CurrentPrincipal.Identity
HttpContext.Current.User.Identity
Request.LogonUserIdentity
I do получить правильного пользователя, но регистр отличается от имени AD. Поэтому мой вопрос: если
Thread.CurrentPrincipal.Identity
(это то, что я использую) дает правильное имя AD, но отображает другой регистр для AD, это, скорее всего, проблема с Thread.CurrentPrincipal.Identity, с настройками интрасети / домена или различия между IIS 6 & IIS 7?
(извиняюсь за расплывчатый характер этого вопроса: я просто пытаюсь найти предложения о том, где лучше всего искать и / или вводить информацию о том, есть ли что-то неразумное в использовании Thread.CurrentPrincipal.Identity).
РЕДАКТИРОВАТЬ: обновление для IIS 6 - по этой ссылке
http://msdn.microsoft.com/en-us/library/aa302377.aspx
Я также должен получить DOMAIN \ username для IIS 6, так что никакой разницы нет. Может ли проблема быть связана с тем, как Kerberos / NTLM взаимодействует с IIS?
РЕДАКТИРОВАТЬ # 2: Проблема может быть обобщена следующим образом:
Я отображается как например ДОМЕН \ joebloggs в AD. Я вошел как joebloggs. Но учетные данные, которые я получаю после (успешной) аутентификации с использованием Thread.CurrentPrincipal.Identity show DOMAIN \ JoeBloggs. Откуда это может исходить?