Il famigerato problema, ancora irrisolto, di scaricare un file quando è richiesta la sicurezza di Windows

C’è un sito Web: http://site.domain.com che richiede le credenziali con la finestra di dialogo “Windows Security”. Così sono riuscito a usare il controllo WebBrowser per navigare verso la pagina e inviare sequenze di tasti per inserire la password – Non ho potuto trovare un altro modo per aggirare.

Ora sono arrivato al punto in cui il sito Web genera un collegamento a un file che voglio scaricare, sembra: http://site.domain.com/operations/reporting/csv/Report720_2553217.csv

Ho provato a usare WebClient per scaricare il file ma non fa nulla (è il mio controllo WebBrowser):

WebClient wb = new WebClient(); wb.Headers.Add( br.Document.Cookie); wb.DownloadFile(link, @"report.csv"); 

Ho cercato di trovare una soluzione di lavoro senza successo. So che il web client non è autenticato, quindi ho provato ad usare il cookie del browser web ma non funziona. Il cookie ha il seguente aspetto:

TLTUID = 61FE48D8F9B910F9E930F42D6A03EAA6; TLTSID = 0B2B8EE82688102641B7E768807FA8B2; s_cc = true; s_sq =% 5B% 5BB% 5D% 5D; ASPSESSIONIDQQSTRDQS = FNPJCODCEMGFIDHFLKDBEMHO

Quindi ho due domande:

  1. Come consentire al client Web di scaricare un file accessibile dalla sessione del browser web. Cosa sto sbagliando nel precedente codice di esempio?

  2. C’è un modo semplice per utilizzare WebBrowser esclusivamente per scaricare e salvare quel file sul percorso e il nome del file della mia scelta? O come fare tutto usando WebClient o qualcos’altro?