UserPrincipal.FindByIdentity возвращает null на сервере IIS

У меня есть следующий образец кода в ASP.NET

        using (PrincipalContext domainContext = new PrincipalContext(ContextType.Domain))
        {
            using (UserPrincipal user = UserPrincipal.FindByIdentity(domainContext, HttpContext.Current.User.Identity.Name))
            {
                if (user == null)
                {
                    lbName.Text = "No User Principal";
                }
                else
                {
                    lbName.Text = user.DisplayName;
                }
            }
        }

. Web.config выглядит так:

<authentication mode="Windows" />
<authorization>
  <deny users="?" />
</authorization>

Я пробовал код на своей локальной машине разработки (часть домена, вход в систему как пользователь домена, VS2010, .Net 4.0, Windowx XP), чтобы локально протестировать, я могу получить объект UserPrincipal .

Если я разверну на WIndows 2003 (также часть домена), IIS6, .Net 4.0 с пулом приложений, работающим в сетевой службе, я отключил анонимный доступ. Но код не может получить объект UserPrincipal .

Нужно ли мне изменить пул приложений для работы под учетной записью домена, чтобы получить UserPrincipal ?

5
задан hardywang 15 December 2011 в 15:43
поделиться