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

Asp.net mvc 如何在ASP.Net MVC中请求System.Net.WebPermission类型的权限?,asp.net-mvc,security,razor,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://we

我创建了一个小型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;

您似乎遇到了与信任相关的问题。您可以通过在
System.Web
下的
Web.Config
中包含以下内容来解决此问题:

<trust level="Full" />

WebPermission
medium trust
环境下不可用(您可以查看以修改此行为以及不应修改的原因)


但是,如果您需要完全信任,您可能需要重新考虑应用程序的要求。

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


在安全设置中,选择启用并单击一个安全设置。设置项目的信任级别

我也遇到了这个问题-结果是由于执行web请求的dll从web下载


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

我尝试了,但没有成功:(我在我的本地主机上尝试过,但一旦我将其上传到我的web主机上,它就不起作用了。这就是我的意思,您可能需要重新考虑要求:此设置将在您的开发环境中起作用(因为它已经以管理员权限运行),但在部署到受限环境时会失败(大多数情况下都是这样)。从安全角度来看,您尝试的是不可能的,因为这将在目标系统中打开一个巨大的漏洞(给予NetworkService
完全信任
)。这个答案是正确的,但我更改信任的方式是右键单击您的项目…属性…安全性..单击“这是一个完全信任的应用程序”.我不能确切地说这对长期安全会有什么影响。它解决了我的问题。