¿Cómo proporcionar credenciales mediante programación para usar la API de Google Drive en C # o vb.net?

Hice un programa que usa la API de Google Drive para leer datos de un archivo en Google Drive.

la primera vez que ejecuta la aplicación, se abre un navegador web que le solicita iniciar sesión con la cuenta de Google Drive.

Quiero proporcionar a la aplicación el nombre de usuario y la contraseña para que obtenga las credenciales automáticamente, de modo que los usuarios no necesiten saber el nombre de usuario y la contraseña de mi cuenta de Google Drive.

Aquí está el código en vb.net:

    Dim credential As UserCredential

    Using stream = New FileStream("client_secret.json", FileMode.Open, FileAccess.Read)
        Dim credPath As String = System.Environment.GetFolderPath(
            System.Environment.SpecialFolder.Personal)
        credPath = Path.Combine(credPath, ".credentials/drive-dotnet-quickstart.json")

        credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets,
        Scopes,
        "user",
        CancellationToken.None,
        New FileDataStore(credPath, True)).Result
        'Console.WriteLine("Credential file saved to: " + credPath)
    End Using

    //I want to provide the username and password in the app so that it doesn't open a web browser asking for them

    ' Create Drive API service.
    Dim initializer = New BaseClientService.Initializer
    initializer.HttpClientInitializer = credential
    initializer.ApplicationName = ApplicationName
    Dim service = New DriveService(initializer)

    ' Define parameters of request.
    Dim listRequest As FilesResource.ListRequest = service.Files.List()
    listRequest.PageSize = 10
    listRequest.Fields = "nextPageToken, files(id, name)"

    ' List files.
    Dim files As IList(Of Google.Apis.Drive.v3.Data.File) = listRequest.Execute().Files

Aquí está el código en C #:

        UserCredential credential;

        using (var stream =
            new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
        {
            string credPath = System.Environment.GetFolderPath(
                System.Environment.SpecialFolder.Personal);
            credPath = Path.Combine(credPath, ".credentials/drive-dotnet-quickstart.json");

            credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,
                Scopes,
                "user",
                CancellationToken.None,
                new FileDataStore(credPath, true)).Result;
            //Console.WriteLine("Credential file saved to: " + credPath);
        }

        //I want to provide the username and password in the app so that it doesn't open a web browser asking for them

        // Create Drive API service.
        var service = new DriveService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
            ApplicationName = ApplicationName,
        });

        // Define parameters of request.
        FilesResource.ListRequest listRequest = service.Files.List();
        listRequest.PageSize = 10;
        listRequest.Fields = "nextPageToken, files(id, name)";

        // List files.
        IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
            .Files;

Respuestas a la pregunta(1)

Su respuesta a la pregunta