如何在C#中读取安全的XML URI

本文关键字:安全 XML URI 读取 | 更新日期: 2023-09-27 18:21:56

我正在尝试从C#中的URI读取一个安全的XML文档。我了解XmlReader类的基本知识。然而,我不知道如何在代码中为URI提供用户名和密码。我感觉它与XmlSecureRevolver对象有关。但是我不知道如何设置用户名和密码。有人能帮我设置凭据吗?

谢谢,Corey

如何在C#中读取安全的XML URI

我认为这应该做到:

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...
    }
}

快速谷歌搜索术语"XmlReader Authenticate"会得到第一个结果:

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

将URL解析为包含要读取的XML数据的文件时,该文件可能具有受限访问策略。如果访问网络资源需要身份验证,请使用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;