2010-12-12 9 views
0

おしゃべりXMLからhttpsリンク+ポップアップユーザー名/ pwボックス

私はユーザー名とAPIキーを入力する必要があるウェブサイトからxmlファイルを取得しようとしています。

例:

public void GetTournaments(string userName, string apiKey, string tournamentName) 
{ 
string getXMLAdress = "https://" + userName + ":" + apiKey + "@challonge.com/api/tournaments/" + tournamentName + "/participants.xml"; 
XmlDocument tournamentsXML = new XmlDocument(); 
tournamentsXML.Load(getXMLAdress); 
} 

ウェブサイト上のAPIを使用すると、これだけの情報が...しかし、それは常に私がアクセスがない401を返す必要があることを示しています。今私は私のブラウザにこれを置くとき気づいた、私はまだ私のユーザー名とパスワードを記入しなければならなかった。上記のURLを使用すると、ユーザー名/パスワードを入力できるポップアップボックスが表示されます。

私はいつもユーザーにファイルをダウンロードさせることができましたが、それは面倒です。だから私は別の方法がある場合、または私はC#を介してポップアップボックスに記入することができますかと思います。

ありがとうございます。

+0

userName/apiKeyは英数字ですか? – Andreas

+0

Usernameはユーザーが入力する内容に依存するので、どちらもyesです。 APIキーは間違いなく、ユーザーの中には数字の入ったユーザー名を持つユーザーもいると思います。 – Citroenfris

答えて

2

WebClientを通じて資格情報を渡して、WebClientを使用して、Webサーバーから必要なXMLファイルをロードできます。

public static void GetFileWithCredentials(string userName, string password, string url) 
    { 

     using (WebClient wc = new WebClient()) 
     { 
      wc.Credentials = new NetworkCredential(userName, password); 
      string xml = wc.DownloadString(url); 

      XmlDocument tournamentsXML = new XmlDocument(); 
      tournamentsXML.LoadXml(xml); 
     } 

    } 

ユーザ名にドメイン情報が含まれている場合 、助けNetworkCredential(string userName, string password, string domain)

希望のオーバーロードされたコンストラクタで別々にそれを渡します!

+0

それはトリックを行うように見えました、ありがとう! – Citroenfris

関連する問題