Как я могу прочитать безопасный XML URI в C #? - PullRequest
3 голосов
/ 31 января 2012

Я пытаюсь прочитать защищенный XML-документ из URI в C #.Я понимаю основы класса XmlReader.Однако я не могу понять, как предоставить имя пользователя и пароль для URI в коде.У меня такое ощущение, что это как-то связано с объектом XmlSecureResolver.Но я не могу понять, как установить имя пользователя и пароль.Кто-нибудь может мне помочь с тем, как установить учетные данные?

Спасибо, Кори

Ответы [ 2 ]

6 голосов
/ 31 января 2012

Я думаю, что это должно сработать:

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 голос
/ 31 января 2012

Быстрый Google с термином «Аутентификация XmlReader» выдает это как первый результат:

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

При разрешении URL-адреса в файл, содержащий данные XMLдля чтения файл может иметь политику ограниченного доступа.Если для доступа к сетевому ресурсу требуется проверка подлинности, используйте свойство XmlResolver.Credentials, чтобы указать необходимые учетные данные.Если свойство XmlResolver.Credentials не задано, для учетных данных устанавливается нулевое значение.

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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...