2016-09-01 11 views
0
using (var client = new WebClient()) 
{    
    client.UseDefaultCredentials = true; 
    client.Credentials = new NetworkCredential("abcd","abcd1234"); 
    string downloadlink_INC="https://completeurl.com/"; 
    client.DownloadFile(downloadlink_INC, "downladed.csv");     
} 

Windows認証を使用するログインしたWebアカウントから.csvファイルをダウンロードしようとしました。しかし、ここで私はウェブサイトへのアクセス権を持たないユーザーも許可するために、デフォルトのネットワーク資格情報を与えました。 私が渡しているリンクは、ダウンロードフォルダのブラウザから.csvファイルをダウンロードしていますが、同じ(https://completeurl.com/)がC#コードで使用されている場合、その内容はHTMLコードではなく列です。Windows認証を使用するログインしたWebアカウントから.csvファイルをダウンロードしようとしています。

このファイルは、ページのHTMLコードにすぎません。

ありがとうございます!

The CSV header view

+0

ようこそ。質問は非常に明確ではありません、あなたは説明をもう少し明確にしてくださいことができます –

+0

どのようにコンテンツを受信したいですか?あなたがC#でそれをしないと、どうして普通のように見えますか? – rbr94

+0

こんにちはArsen、 アカウント資格情報を使用してログインする(Windows資格情報など)ウェブサイトがあるため、毎回サイトにログインする必要はありません。あなたのシステムにログインしてサイトにアクセスすれば、あなたの名前が一番上に表示されます。だから私は、同じブラウザのアドレスバーに貼り付けるとcsvファイルをダウンロードするリンクを持っています。この場合、内容は良好で表形式である。しかし、上記のコードで同じURLを実行すると、csvファイルがダウンロードされますが、コンテンツは完全なHTLMコードとなります。 – Ashish

答えて

0

同様の質問への答えを参照してください:言及した答えを使用してDomain credentials for a WebClient class don't work

をWindows認証で保護されたWebサイトの背後にあるリソースにアクセスしようとすると、次のコードは、私の仕事:

using (var client = new WebClient()) 
{ 
    string username = ""; 
    string password = ""; 
    string domain = ""; 
    string downloadlink_INC = "https://completeurl.com/"; 

    client.UseDefaultCredentials = false; 
    CredentialCache cc = new CredentialCache(); 
    cc.Add(
     new Uri("https://completeurl.com/"), 
     "NTLM", 
     new NetworkCredential(username, password, domain)); 
    client.Credentials = cc; 

    client.DownloadFile(downloadlink_INC, "downladed.csv"); 
} 

しかし、バイナリをリバースエンジニアリングして信頼できるので、Windowsログイン資格情報をソースコードに格納して配布することをお勧めします露出したials。

+0

ありがとう、しかし私が言及したように私はページのリソースをダウンロードしようとしていない。私はテーブル/レポートをダウンロードしようとしています、あるいはCSVファイルにエクスポートしようとしています。コンテンツは表形式になります。質問にCSVファイルヘッダーのスクリーンショットを添付しました。 – Ashish

+0

@Ashish HTMLテーブルをCSVファイルに変換しようとしている場合は、[HTMLテーブルをC#の使用可能なデータリストに解析する](http://blog.ditran.net/parsing-html-table-to-c -usable-datalist /)と[HTML Agility Packの複数のHTMLテーブルを徹底的にループ](http://stackoverflow.com/questions/39373749/loop-thorough-multiple-html-tables-in-html-agility-pack)を参照してください。 htmlテーブルデータがDataSetまたはDataTableに格納されると、CSVにエクスポートするのが簡単になります。 – sly

+0

ありがとうSly、HTMLテーブルは常に私たちがWebページのHTML本体に置いた静的コンテンツテーブルです。しかし、私がダウンロードしようとしているテーブルは日々変化しています。毎日、テーブルには昨日の新しいエントリが表示されます。本日09/13/2016のコンテンツをダウンロードしている場合は、昨日新しく挿入されたレコードがテーブルの内容に表示されます。それらがテーブルにロードされてページに表示されたら、テーブルのヘッダから右クリックすると、CSV/PDF/XLSにコンテンツをエクスポートするオプションが表示され、ローカルフォルダにファイルがダウンロードされます。 – Ashish

関連する問題