System.ServiceModel.Syndication аутентификация - PullRequest
0 голосов
/ 18 февраля 2010

Как я могу использовать аутентификацию с System.ServiceModel.Syndication для чтения частного RSS?

Код, который я сейчас использую, просто возвращает запрещенный.

Я попытался добавить & PASS = пароль и& ПАРОЛЬ = пароль для URL, но это не помогает.

    try
    {
        using (XmlReader reader = XmlReader.Create("http://trac:8080/Project/report/7?format=rss&USER=enr"))
        {
            tracFeed = SyndicationFeed.Load(reader);
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

Ответы [ 2 ]

1 голос
/ 18 февраля 2010

@ bnkdev Вы правы, но что-то не работает. Я не знаю, почему, но мне кажется, это проблема на сервере?

    SyndicationFeed tracFeed;

    string user = "enr";
    string password = "enr";

    System.Net.WebClient wc = new System.Net.WebClient();

    wc.Credentials = new System.Net.NetworkCredential(user, password);

    //this works!
    string web = wc.DownloadString("http://trac:8080/project/login/xmlrpc");

    //this gives a 403 forbidden !! :-(
    System.IO.Stream webClientStream = wc.OpenRead("http://trac:8080/project/report/7?format=rss&USER=enr");

    try
    {

        using (XmlReader reader = XmlReader.Create(webClientStream))
        {
            tracFeed = SyndicationFeed.Load(reader);
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
    finally
    {
        webClientStream.Close();
    }

Оба URL работают в IE, разница перваяодин сразу же открывает окно входа в систему, но второй перенаправляет меня на страницу, где я могу войти ...

Так что я действительно думаю, что там что-то подозрительно ....

1 голос
/ 18 февраля 2010

Вы пытались создать веб-запрос для вашего URI, передав учетные данные веб-запросу. Затем вы можете просто создать XmlReader из потока ответов на запрос и загрузить его с помощью SyndicationFeed.Load. Afaik Load сама по себе не предоставляет прямой способ передачи учетных данных, вам нужно будет выполнить веб-запрос и прикрепить основные учетные данные к URI Вы запрашиваете. Эта статья пытается сделать что-то похожее на вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...