Я создал веб-сайт ASP.NET. Я установил столько настроек, сколько знаю, как установить для своей личной учетной записи пользователя, в том числе:
- Идентификатор пула приложений настроен на мою личную учетную запись пользователя.
- Аутентификация для параметров «Анонимный» и «Олицетворение ASP.NET» настроена явно для моей личной учетной записи пользователя, и оба включены.
Когда веб-приложение выполняет запрос, оно вызывает PowerShell для запуска команды «git config». При вызове PowerShell я также указываю параметр вызова FlowImpersonationPolicy, просто чтобы убедиться, что правильная идентификация проходит весь путь до git. Во время выполнения, непосредственно перед вызовом 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 не работает под моей учетной записью пользователя или не знает о ней, хотя кажется, что все вызывается моей учетной записью пользователя. Я что-то упускаю?