如何在ASP.NET媒体信任中检索Google Blogger提要?

如何在ASP.NET媒体信任中检索Google Blogger提要?,asp.net,gdata-api,Asp.net,Gdata Api,我在HostMySite.com上有一个ASP.NET网站,他们最近将共享帐户更改为以中等信任运行。在我的网站上,我查询我的博客账号,并在我的网站上显示博客帖子 我正在使用Google.GData.Client v1.4.0.2 检索在本地工作(并一直工作到在ISP上调用medium trust)。现在我收到以下错误: [SecurityException: Request for the permission of type 'System.Net.WebPermission, System,

我在HostMySite.com上有一个ASP.NET网站,他们最近将共享帐户更改为以中等信任运行。在我的网站上,我查询我的博客账号,并在我的网站上显示博客帖子

我正在使用Google.GData.Client v1.4.0.2

检索在本地工作(并一直工作到在ISP上调用medium trust)。现在我收到以下错误:

[SecurityException: Request for the permission of type 'System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
   System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0
   System.Security.CodeAccessPermission.Demand() +58
   System.Net.HttpWebRequest..ctor(Uri uri, ServicePoint servicePoint) +147
   System.Net.HttpRequestCreator.Create(Uri Uri) +26
   System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase) +216
   System.Net.WebRequest.Create(Uri requestUri) +31
   Google.GData.Client.GDataRequest.EnsureWebRequest() +77
   Google.GData.Client.GDataRequest.Execute() +42
   Google.GData.Client.Service.Query(Uri queryUri, DateTime ifModifiedSince, String etag, Int64& contentLength) +193
   Google.GData.Client.Service.Query(FeedQuery feedQuery) +202

我已经搜索了谷歌文档和在线,但没有找到需要更改的内容。

在中等信任下,web应用程序无法打开远程HTTP连接。我知道没有解决办法。您最好的选择是切换到另一个主机,或者与您的主机协商,让他们做他们已经放松了WebPermission设置的事情,特别是允许像您这样的Scenarios服务器应用程序必须从远程HTTP服务器(如Google)获取数据


顺便说一句,我并不是说戈达迪是一个伟大的主持人——他们不是——但他们确实修改了他们的中等信任设置,以解决您问题中提到的问题。如果像GoDaddy这样的低端主持人愿意这样做,那么你可以以此为理由说服其他主持人也这么做。

你只是在检索博客帖子吗?RSS提要不能为您完成这项工作吗?这在我为客户做的GoDaddy网站上运行

请记住导入命名空间(可能需要添加对项目的引用):

在ASPX页面中:

<asp:ListView ID="lstLatestNews" runat="server">
        <LayoutTemplate>
            <ul id="latest_news">
                <li id="itemPlaceholder" runat="server"></li>
            </ul>
        </LayoutTemplate>
        <ItemTemplate>
            <li><a href="<%# Eval("Links[0].Uri.AbsoluteUri") %>"><%# Eval("Title.Text") %></a> <em><%# Convert.ToDateTime(Eval("PublishDate.DateTime")).ToString("g") %></em></li>
        </ItemTemplate>
    </asp:ListView>


一些主机将默认信任级别设置为“中等”(或类似于中等的自定义信任级别),但允许在web.config中覆盖该级别,如下所示:

<system.web>
    <trust level="Full" originUrl="" />
</system.web>


你试过覆盖它吗?

根据你想使用它做什么,你可以看看Google AJAX提要API,它是一个javascript API,可以让你将rss提要嵌入你的站点

您将无法从服务器端访问它,因为它将仅显示在用户浏览器中

如果您试图通过搜索引擎将此内容编入索引,则需要将其保存到数据库或对其进行操作,否则此解决方案将不适用于您

Google Feed API文档位于:

<system.web>
    <trust level="Full" originUrl="" />
</system.web>