Thread.CurrentPrincipal.Identity против записи Active Directory - PullRequest
0 голосов
/ 02 октября 2009

В этом чрезвычайно полезном резюме Удостоверения для различных конфигураций аутентификации 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. Откуда это может исходить?

Ответы [ 2 ]

0 голосов
/ 04 ноября 2009

Оказывается, я не получал точную информацию с клиентского сайта: то есть аутентификация происходит так, как я ее понял (т.е. ASP.Net: поиск и возврат из AD; ASP: вручено в IIS), и неожиданный случай был связан с проблемами кэширования, а не с механизмом аутентификации.

0 голосов
/ 06 октября 2009

Имя пользователя в этом случае предоставляется клиентом. Механизм аутентификации проверяет, что идентификация может быть подтверждена, но он не заменяет предоставленное пользователем имя сохраненным именем из AD, поэтому нет оснований ожидать совпадения регистра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...