2010-10-29 7 views
5

Я загрузил recaptcha.dll в версии 1.0.1.0 и 1.0.4.0. При попытке вынести контроль, я получаю следующее исключение:. Безопасность безопасности Исключение при попытке визуализации элемента управления 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

Решение этой проблемы, как это предусмотрено быстрой Googling, заключается в использовании 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) Откройте файл AssemblyInfo.cs проекта DLL и добавьте следующую инструкцию using.

using System.Security;

2) Добавьте следующую строку в AssembleInfo.cs.

[сборочный: AllowPartiallyTrustedCallers()]

3) Recomiple динамических библиотек и перераспределить свои проекты. Эта ошибка должна быть решена.

ПРИМЕЧАНИЕ. Веб-сайт, на котором я работаю, использует 1and1.com в качестве своей хостинговой компании. Я также должен был установить свойство Proxy в коде, чтобы избежать исключения тайм-аута во время HttpWebRequest.

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

Надеется, что это поможет кому-то, но теперь у меня есть ReCaptcha и работают на сайте ASP.NET, размещенный на 1And1.com.

+0

На общем шланге мы не можем использовать инструмент« caspol.exe »в предыдущем ответе. Мне не нужно было изменять файл AssemblyInfo.cs. изменил прокси-адрес Url для recaptcha, и он работал на общем хостинге 1and1.com. Ваше решение помогло мне. – Rahatur

2

У меня был такой же выпуск. После некоторого headbanging я понял, что я загрузил recaptcha.dll из zip-файла. Итак, я щелкнул правой кнопкой мыши по dll, перешел к свойствам и нажал кнопку разблокирования.

Это решило проблему для меня.

0

В IIS перейдите к пула приложений, там есть для вашего проекта, щелкните правой кнопкой мыши и выберите Дополнительные свойства и установите LoadUserProfile в True.

1

я столкнулся с двумя различными вопросами безопасности при попытке развернуть ReCaptcha Google на нашем сервере продукции в общей среде хостинга на HostMySite.com

1) Во-первых, я не мог получить форму для отображения на всех.Вместо этого я бы увидел сообщение об ошибке, в котором говорилось: «Эта сборка не позволяет частично доверять вызывающим». Это было исправлено путем загрузки DLL, которую кто-то перекомпилировал из исходного кода с добавлением [сборка: AllowPartiallyTrustedCallers]. Загрузки DLL и более подробная информация здесь: https://code.google.com/p/recaptcha/issues/detail?id=100

2) После развертывания этой DLL я был в состоянии получить ReCaptcha первоначально отображать на форме, но представления формы в результате одной и той же ошибки безопасности, перечисленные в исходное сообщение :

«Описание:.. Приложение попыталось выполнить операцию, не разрешенный политикой безопасности чтобы предоставить это приложение требуемого разрешения, пожалуйста, обратитесь к системному администратору или изменить уровень доверия приложения в файле конфигурации»

Я отправил билет на нашу поддержку хостинга, и они смогли исправить эту проблему, это объяснение:

«Возможно, это работало на вашем компьютере, потому что у вас установлен режим полного доверия, тогда как веб-сервер, на котором установлен этот сайт, настроен на средний уровень доверия. Поэтому он имеет ограниченный набор доверенных URI. Теперь я добавил URI для Recaptcha Google в список надежных и ваша форма теперь работает на сайте. Если у вас есть какие-либо дополнительные вопросы, сообщите нам об этом. »