WebClient.DownloadString 无法访问站点,即使 "remember me" 已启用

WebClient.DownloadString cannot access site even though "remember me" enabled

我可以使用我的 C# 程序访问多个站点。我在网站上有帐户并设置了选项 "remember me"。在每个帐户中,我还根据欧盟最近的要求授权了匿名访问。

该程序在几个 BOINC 项目站点上运行良好:setiathome、milkyway、Einstein 等,但在 WorldCommunityGrid 上运行不佳。在下面的代码行中,在逐步执行 myUri 后,可以将其内容复制并粘贴到边缘或 chrome 中,并显示正确的页面。 "RawPage" 的内容在除 WCG 之外的所有网站上都匹配。 RawPage 的内容与未登录时看到的内容相匹配。所以基本上,如果我将 url 复制并粘贴到边缘,它就可以工作,但在我的 C# 程序中不行。

RawPage = client.DownloadString(myUri);

您必须通过 WebClient 进行身份验证,并将响应 cookie 添加到您向受保护方发出的每个请求。

另请参阅:Using CookieContainer with WebClient class