2012-01-31 11 views
2

私はC#のURIから安全なXML文書を読み込もうとしています。私はXmlReaderクラスの基礎を理解しています。しかし、私はどのようにコードのURIのユーザー名とパスワードを提供するかを理解することはできません。 XmlSecureResolverオブジェクトと何か関係があると感じました。しかし、私はユーザー名とパスワードを設定する方法を把握することはできません。誰でも資格を設定する方法を教えてもらえますか?C#で安全なXML URIを読み取るにはどうすればよいですか?

おかげで、 コーリー

答えて

5

私は、これはトリックを行うべきだと思う:

WebRequest request = WebRequest.Create(url); 
request.Credentials = new NetworkCredential("usernamne", "password"); 

using (WebResponse response = request.GetResponse()) 
{ 
    using (XmlReader reader = XmlReader.Create(response.GetResponseStream())) 
    { 
     // Blah blah... 
    } 
} 
1

用語 "XmlReaderの認証" の迅速なGoogleが最初の結果としてこれを得られます。

http://msdn.microsoft.com/en-us/library/47as68k4%28v=vs.71%29.aspx

URLをXML daを含むファイルに解決する場合そのファイルにアクセス制限ポリシーが設定されている可能性があります。ネットワークリソースにアクセスするために認証が必要な場合は、XmlResolver.Credentialsプロパティを使用して必要な資格情報を指定します。 XmlResolver.Credentialsプロパティが設定されていない場合、資格情報はnullに設定されます。

XmlTextReader rdr = new XmlTextReader("http://localhost/bookstore/books.xml"); 
rdr.XmlResolver.Credentials = CredentialCache.DefaultCredentials; 
XmlDocument doc = new XmlDocument(); 
doc.Load(rdr) 

と使用して、別の資格情報:

NetworkCredential myCred = new NetworkCredential(UserName, SecurelyStoredPassword, domain); 
CredentialCache myCache = new CredentialCache(); 
myCache.Add(new Uri("www.contoso.com"), "Basic", myCred); 
myCache.Add(new Uri("app.contoso.com"), "Basic", myCred); 
reader.XmlResolver.Credentials = myCache; 
関連する問題