首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.ServiceModel.Syndication身份验证

System.ServiceModel.Syndication身份验证
EN

Stack Overflow用户
提问于 2010-02-19 00:10:16
回答 2查看 1.3K关注 0票数 0

如何通过System.ServiceModel.Syndication使用身份验证来读取私有RSS?

我现在使用的代码只是返回禁止。

我已经尝试添加&PASS=password和&PASSWORD=password到网址,但没有帮助。

代码语言:javascript
复制
    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);
    }
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-19 00:48:48

@bnkdev你是对的,但有些东西不能工作我不知道为什么,但我猜这似乎是服务器上的问题?

代码语言:javascript
复制
    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();
    }

这两个网址在IE中工作,不同的是第一个立即弹出一个登录窗口,但第二个重定向到我可以登录的页面……

所以我确实认为有些地方有点可疑...

票数 1
EN

Stack Overflow用户

发布于 2010-02-19 00:28:44

您是否尝试过为URI创建webrequest,并将凭据传递给WebRequest。然后,您可以简单地从请求的响应流创建一个XmlReader,并通过SyndicationFeed.Load加载该阅读器,afaik加载本身不提供传递凭据的直接方式,您将需要发出web请求并将基本凭据附加到您所请求的URI。此article正在尝试执行与您的问题类似的操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2290065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档