1

У меня есть приложение MVC 4, развернутое в IIS. Я пытаюсь привести пользователя Windows в код, как показано ниже, но он заставляет меня использовать пользователь App Pool.Как получить идентификатор пользователя Window? «User.Identity.Name» возвращает идентификатор пула приложений вместо пользователя Windows

кода контроллера, чтобы получить Пользователь:

User.Identity.Name 

Я пытался chaged пула Идентичность App в локальной системе, NetworkSystem и ApplicationPoolIdentity. Но затем он остановил все, чтобы вернуться назад.

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

конфигурации, как показано ниже:

<authentication mode="None"/> 

Заранее спасибо

+0

Возможный дубликат [Получить программный идентификатор пула приложений программно] (http://stackoverflow.com/questions/10101162/get-the-application-pool-identity-programmatically) –

+0

Нет, его не дублируют. Этот вопрос состоит в том, чтобы получить идентификатор пула приложений. Здесь я этого не хочу. спасибо – Scorpion

+0

Если это так, вам нужно изменить заголовок своего вопроса. Я не могу точно сказать, о чем вы просите. Вы хотите, чтобы ваш сайт использовал проверку подлинности Windows (что приведет к тому, что User.Identity.Name вернет текущего пользователя Windows)? –

ответ

0

Изменение в пуле приложений работало для меня.

Изменен Load User Settings до true в дополнительных настройках пула приложений и он сработал.

0

Если вы хотите, чтобы пользователи Windows, чтобы автоматически войти на свой сайт, используя свои учетные данные Windows, единственное изменение, которое вы должны сделать это от:

<authentication mode="None" /> 

To:

<authentication mode="Windows" /> 

Ваши пользователи будут автоматически регистрироваться в IE или других браузерах, настроенных для проверки подлинности NTLM. Если нет, им все равно будет предложено повторно ввести свои учетные данные Windows.

+0

Я уже пробовал. Но, к сожалению, не работает. 'User.Identity.Name' возвращает пустую строку. – Scorpion

+0

Не могли бы вы рассказать мне, какую аутентификацию мне нужно включить. Если я включу 'Windows Auth'. Он запрашивает экран входа в систему каждый раз. – Scorpion

+0

@Scorpion - Я принимал условия, изложенные в этом сообщении блога. Взгляните на контрольный список и убедитесь, что ваша среда также настроена правильно: http://www.wiktorzychla.com/2012/06/iis-75-integrated-security-with-no.html –

0

Я считаю, что вы хотите найти идентификатор модели процесса. Это идентификатор, в котором работает пул приложений. Иногда это можно настроить на учетную запись SYSTEM, Network Service или Custom Domain Service. Это верно? Я нашел ответ в другом потоке.

Для кого-то там, что может быть изо всех сил, это код, который я использовал, чтобы получить имя пользователя, который начал AppPool (это тождество):

ApplicationPool pool = serverManager.ApplicationPools["YoutAppPoolName"]; 
pool.ProcessModel.IdentityType = ProcessModelIdentityType.SpecificUser; 
string user = pool.ProcessModel.UserName;– p0enkieMay 7 '12 at 6:47 

Вам нужно будет добавить ссылку на Microsoft.Web.Administration использовать класс ServerManager.

+0

Добро пожаловать на сайт @Kris. Я отредактировал это, чтобы соответствовать нашему стилю. убедитесь, что он все еще говорит, что вам нужно. Вам не нужно подписывать свои сообщения. Если вы нашли этот ответ в другом потоке, вы можете захотеть ссылаться на источник. – gung

+0

Opps, извините. – Kris

 Смежные вопросы

  • Нет связанных вопросов^_^