如何在ASP.NET MVC中请求System.Net.WebPermission类型的权限?

时间:2013-03-06 02:29:29

标签: asp.net-mvc security razor

我创建了一个小型Web服务,使用代理为另一个网站创建HttpWebRequest 在我使用代理之后我得到了这个错误:

  

请求获得类型'System.Net.WebPermission,System,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的权限失败。

我不知道如何修复它。

这是我的代码,

HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://website.com");
req.CookieContainer = c;

req.Proxy = new WebProxy("IP:PORT");

req.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; GTB7.4; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.2)";
req.Accept = "application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*";
req.Headers.Add("Accept-Language", "en-US");
req.ServicePoint.Expect100Continue = false;
req.AllowAutoRedirect = false;
req.Timeout = 10000;
req.Method = "GET";
req.KeepAlive = true;
req.ProtocolVersion = HttpVersion.Version10;

3 个答案:

答案 0 :(得分:2)

您似乎遇到了与信任相关的问题。您可以通过在Web.ConfigSystem.Web下加入<{1}}来解决问题。

<trust level="Full" />

WebPermissionmedium trust环境下不可用(您可以查看this article来修改此行为以及您不应该这样做的原因)。

但是,如果您需要full trust,则可能需要重新考虑申请的要求。

答案 1 :(得分:0)

转到项目/应用程序(WPF)的属性

在安全性中,选择启用clickone安全设置。并设置项目的信任级别

答案 2 :(得分:0)

我也遇到了这个问题 - 原来是由于dll正在从网上下载网页请求。

我必须进入文件资源管理器中的dll属性(右键单击&gt;属性),然后单击“取消阻止” - 确保单击“应用”,然后单击“确定”。