2013-03-06 132 views
4

我創建,創建一個HttpWebRequest使用代理 另一個網站,一個小型的web服務,我使用的代理服務器後,我得到了錯誤:如何在ASP.NET MVC中請求類型System.Net.WebPermission的權限?

Request for the permission of type 'System.Net.WebPermission, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

我不知道如何解決它的想法。

這裏是我的代碼,

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; 

回答

2

看來你正在運行到一個信任相關的問題。你也許可以通過在你的Web.Config工作,解決此問題,System.Web下,

<trust level="Full" /> 

WebPermission不是medium trust環境下使用(你可以看看this article修改此行爲,併爲原因你不應該)。

但是,如果您需要full trust,您可能需要重新考慮應用程序的要求。

+0

我試過,但它沒有工作:( 我試圖在我的本地主機上,它的工作原理,但一旦我上傳到我的網絡託管它不起作用 – BOSS 2013-03-06 16:27:57

+1

這就是我的意思*你可能不得不重新考慮需求*:這個設置可以在你的開發環境中工作(因爲它已經以Admin權限運行),但是在部署到一個受限制的環境(並且大多數情況下)時它會失敗。你嘗試的是* not * possible一個安全的角度,因爲它會打開目標系統中的巨大漏洞(給予NetworkService完全信任)。 – rae1 2013-03-06 16:52:55

+0

這個答案是正確的,但我改變信任的方式是右鍵單擊你的項目...屬性.. 。安全性..點擊「這是一個完全信任的應用程序」。我不能確切地說,這會對安全性產生什麼影響,它解決了我的問題。 – Yosem 2014-05-23 18:42:35

0

去你的項目/應用程序(WPF)

的性能在安全選擇啓用clickone securitysetting。並設置項目的信任級別

0

我也遇到了這個問題 - 事實證明,這是由於dll執行從網上下載的Web請求。

我必須進入文件資源管理器(右鍵單擊>屬性)的DLL的屬性,然後單擊「解除阻止」 - 確保點擊「應用」,然後「確定」。

相關問題