Команды Git через powershell через IIS имеют неверную идентификацию пользователя? - PullRequest
0 голосов
/ 09 января 2019

Я установил веб-сайт ASP.NET. Я установил столько настроек, сколько я знаю, как установить для моей личной учетной записи пользователя, в том числе:

  • Идентификатор пула приложений установлен для моей личной учетной записи пользователя.
  • Аутентификация для параметров «Анонимный» и «Олицетворение ASP.NET» явно указана для моей личной учетной записи, и оба включены.

Когда веб-приложение выполняет запрос, оно вызывает PowerShell для запуска команды 'git config'. При вызове PowerShell я также указываю параметр вызова для FlowImpersonationPolicy , просто чтобы убедиться, что правильная идентификация делает его полностью подходящим. Во время выполнения, перед тем, как PowerShell запускается веб-приложением, значение System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString() действительно является моей учетной записью.

Проблема в том, что вывод 'git config' отличается, когда я запускаю приложение в visual studio по сравнению с тем, когда я запускаю его на своем локальном экземпляре IIS, который настроен так, как я описал выше. Когда я запускаю веб-приложение в Visual Studio, появляется то же удостоверение, что и в IIS, но вывод git config отличается.

Когда он запускается git config --show-origin -l из версии, размещенной в Visual Studio, я вижу, что он правильно выбирает глобальные настройки для моей учетной записи пользователя по адресу "c: \ users \ myusername.gitconfig". Однако при запуске того же веб-приложения, развернутого в IIS, команда не выводит список конфигураций в этом месте.

Таким образом, похоже, что команда git не запущена под моей учетной записью пользователя или не знает о ней, даже если все кажется вызванной моей учетной записью. Я что-то упустил?

1 Ответ

0 голосов
/ 10 января 2019

Кажется, что в IIS есть скрытый параметр, который не открывается через IIS Manager U.I.

Параметр «loadUserProfile» находится в США. и для него установлено значение true, но есть еще один параметр с именем setProfileEnvironment, который также должен иметь значение true, чтобы профиль пользователя действительно работал и был видимым для Git и других процессов, запущенных из IIS.

Параметр находится в разделе processModel пула приложений в файле "% WINDIR% \ System32 \ inetsrv \ Config \ applicationHost.config". Вы можете изменить значения по умолчанию для параметра в разделе applicationPoolDefaults / processModel или просто изменить параметры для раздела processModel отдельного пула приложений.

system.applicationHost settings

К сожалению, эти настройки не отображаются в IIS Manager U.I. нравится Загрузить профиль пользователя.

enter image description here

...