Problema de C # Git Command

Estoy desarrollando una aplicación donde necesito ejecutar el command Git desde C #. Utilicé Proceso para ejecutar Comandos si paso el Nombre de usuario y la Contraseña, entonces dice: Nombre de Usuario o Contraseña es Incorrecto, pero el trabajo real es Convencional. A continuación está mi Código: –

public static void PullCode(string gitCommand) { string strPassword = "Password"; ProcessStartInfo gitInfo = new ProcessStartInfo(); Process gitProcess = new Process(); gitInfo.CreateNoWindow = true; gitInfo.UserName = "UserNAme"; gitInfo.Password = Misc.ConvertPassword(strPassword); gitInfo.UseShellExecute = false; gitInfo.FileName = @"C:\Program Files (x86)\Git\bin\git.exe"; //git repostory directory path gitInfo.Arguments = gitCommand; //git command such as "fetch orign" gitInfo.WorkingDirectory = @"E:\Code Demo\testrepo"; //YOUR_GIT_REPOSITORY_PATH Where you want to Copy Data gitInfo.RedirectStandardError = true; gitInfo.RedirectStandardOutput = true; using( var proc = new System.Diagnostics.Process() ) { proc.StartInfo = gitInfo; proc.Start(); var output = proc.StandardOutput.ReadToEnd(); var error = proc.StandardError.ReadToEnd(); var logRaw = string.IsNullOrEmpty( output ) && !string.IsNullOrEmpty( error ) ? error.Split( '\n' ).ToArray() : output.Split( '\n' ).ToArray(); proc.WaitForExit(); proc.Close(); } } 

Tienes dos opciones. El primero es establecer la configuration de su git repo (o globalmente) para usar git askpass witch es "git config core.askpass git-gui – askpass". Llámalo como el primer command para tu process. El inconveniente aquí es que cada vez que haces un command de modificación te pedirá una contraseña.

O puede tener su propio ejecutable que le pedirá una contraseña una vez y tendrá la opción de save la contraseña en su aplicación. Pero aquí tendrá que tener cuidado ya que si no lo almacena adecuadamente, será un riesgo de security.