driver da web selenium executando como usuário diferente, não obtendo perfil / sessão do usuário

Tenho uma situação estranha em que modifiquei levemente o código do driver da web selenium para permitir que o serviço do driver fosse iniciado sob um usuário diferente. As alterações no código do github são:

public void Start()
    {
        this.driverServiceProcess = new Process();
        if (this.user != null)
        {
            this.driverServiceProcess.StartInfo.UserName = user.Name;
            this.driverServiceProcess.StartInfo.Password = user.Password;
            this.driverServiceProcess.StartInfo.Domain = user.Domain;
        }
        this.driverServiceProcess.StartInfo.FileName = Path.Combine(this.driverServicePath, this.driverServiceExecutableName);
        this.driverServiceProcess.StartInfo.Arguments = this.CommandLineArguments;
        this.driverServiceProcess.StartInfo.UseShellExecute = false;
        this.driverServiceProcess.StartInfo.CreateNoWindow = this.hideCommandPromptWindow;
        this.driverServiceProcess.Start();
        bool serviceAvailable = this.WaitForServiceInitialization();

        if (!serviceAvailable)
        {
            string msg = "Cannot start the driver service on " + this.ServiceUrl;
            throw new WebDriverException(msg);
        }
    }

onde os detalhes do usuário são passados do meu código externo na chamada para instanciar o driver da web:

new ChromeDriver(userName, password, domain);

ou

new InternetExplorerDriver(ieOptions, userName, password, domain);

e propagado através.

Isso inicia com êxito o driver chrome sob as credenciais de usuário necessárias, mas tem um problema com o IE.

Além disso, o driver chrome não tem o mesmo comportamento que o chrome iniciado manualmente pelo usuário fornecido (ou seja, não por um driver selênio). Especificamente, a passagem automática de credenciais do usuário em um desafio NTLM não ocorre.

Descobri que, se eu tiver uma sessão interativa em execução como o usuário desejado (basta usarrunas /user:<theUser> cmd.exe na linha de comando e deixe a sessão aberta), toda a funcionalidade dos navegadores é a esperada quando iniciada pelo driver da web selenium, incluindo a resposta automática ao desafio do NTLM.

Se eu usarProcess.Start() para iniciar o cmd.exe como o usuário desejado antes de criar o driver da web, isso não funciona.

Minha pergunta é esta:

O que há de diferente em iniciar um processo programaticamente (usandoProcess.Start()) em comparação com o lançamento de uma sessão interativa do processo na linha de comando?

E existe alguma maneira de reproduzir fielmente o efeito de iniciar uma sessão a partir da linha de comando no código, para que eu possa automatizar o processo e fazer com que meus drivers da Web funcionem como eu desejo?

nota: tentei iniciar o webdriver usando a representação .net (como sugeridoaqui eaqui), em vez de modificar o código selênio para executar o serviço de driver com outro usuário, mas as solicitações enviadas do driver para um servidor foram todas enviadas pelo meu usuário e não pela especificada pela representação (consulteaqui)

questionAnswers(1)

yourAnswerToTheQuestion