我正在尝试从C#中的URI读取安全的XML文档。我理解XmlReader类的基础知识。但是我无法弄清楚如何在代码中为URI提供用户名和密码。我觉得它与XmlSecureResolver对象有关。但我无法弄清楚如何设置用户名和密码。任何人都可以帮我解决如何设置凭据吗?
谢谢, 科里
答案 0 :(得分:6)
我认为这应该可以解决问题:
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 :(得分:1)
“XmlReader Authenticate”一词的快速Google将此作为第一个结果:
http://msdn.microsoft.com/en-us/library/47as68k4%28v=vs.71%29.aspx
在解析包含要读取的XML数据的文件的URL时,该文件可能具有受限制的访问策略。如果需要身份验证才能访问网络资源,请使用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;