2010-10-29 8 views
5

我已經下載了recaptcha.dll兩1.0.1.0和1.0.4.0當.NET安全異常。 當試圖呈現控件,我得到以下異常:試圖呈現的reCAPTCHA控制

Security Exception Description: The application attempted to perform an operation not allowed by the security policy. To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.

Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Stack Trace:[SecurityException: Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.] System.Reflection.Assembly._GetType(String name, Boolean throwOnError, Boolean ignoreCase) +0 System.Web.UI.NamespaceTagNameToTypeMapper.GetControlType(String tagName, IDictionary attribs, Boolean throwOnError) +209

解決這個,作爲一個快速谷歌搜索提供的,就是用的Caspol.exe到完全信任添加到recaptcha.dll組裝。

C:\%路徑%\ caspol -af C:\的Inetpub \ wwwroot的\%路徑%\ BIN \ recaptcha.dll

在這一點上,我得到以下錯誤:

ERROR: This assembly is not strong name signed

缺少下載源代碼並在本地重新編譯它,是否有任何其他方式來實現它的工作?

回答

0

暫時無法得到這個使用是可供下載未簽名的dll工作,我得到了源的保持,編制並簽上了自己和這工作得很好。

這本來是巨大的,如果什麼東西,沿途某處,曾表示,我可能做到這一點...

3

我遇到了同樣的問題,你的解決方案幫助了我。我還必須在reCAPTCHA ASP.NET源代碼上執行以下步驟。

1)打開DLL項目的AssemblyInfo.cs文件,並添加using語句如下。使用System.Security

;

2)添加下列行來AssembleInfo.cs。

[組件:AllowPartiallyTrustedCallers()]

3)Recomiple的DLL和重新部署的項目。這個錯誤應該被解決。

注:該網站我正在使用1and1.com作爲他們的託管公司。我還必須在代碼隱藏中設置Proxy屬性以避免HttpWebRequest期間發生超時異常。

recaptcha.Proxy = new WebProxy("http://ntproxyus.lxa.perfora.net:3128"); 

希望這可以幫助別人,但現在我有reCAPTCHA的啓動和運行在託管在1and1.com的ASP.NET網站。

+0

在一個共享的軟管,我們不能使用‘的Caspol.exe’工具mentiond在以前的答案。我沒有修改AssemblyInfo.cs文件。我只是改變了代理網址的ReCaptcha和它的工作對1and1.com共同主辦。您的解決方案幫助了我。 – Rahatur 2014-05-29 10:47:36

2

我有這個相同的問題。經過一番攻破之後,我意識到我已經從一個zip文件中下載了recaptcha.dll。所以,我右鍵單擊該DLL,去屬性,並點擊解除阻止按鈕。

這解決了我的問題。

0

在IIS轉到應用程序池,那裏有你的項目,右鍵單擊並選擇高級屬性並設置LoadUserProfile爲True。

1

我遇到了兩種不同的安全問題,同時嘗試部署谷歌的驗證碼到我們的生產服務器在共享宿主環境中hostmysite.com

1)首先,我無法獲得在所有顯示的形式。相反,我會看到一條錯誤消息,指出「該程序集不允許部分受信任的調用者。」這是通過下載一個DLL來解決的,該DLL通過添加[assembly:AllowPartiallyTrustedCallers]從源代碼重新編譯。該DLL下載和更多的細節在這裏: https://code.google.com/p/recaptcha/issues/detail?id=100

2)形式導致原帖中列出的相同的安全錯誤部署一個DLL我能得到的驗證碼在最初顯示的形式,但提交後:

「說明:應用程序試圖執行安全策略不允許的操作要授予此應用程序所需的權限,請與系統管理員聯繫或更改配置文件中的應用程序的信任級別」

我向我們的託管支持提交了一張票,他們能夠解決這個問題這樣的解釋:

「這可能是你的電腦上工作,因爲你必須將其設置爲完全信任的環境,而該網站是設置爲中等信任的web服務器。因此它具有一組受限制的可信URI。現在我已經加入了URI谷歌的的Recaptcha到信任列表和表單現在工作在網站上。如果您有任何問題,也讓我們知道。」