Исключение .Net Security при попытке визуализации элемента управления reCaptcha - PullRequest
5 голосов
/ 29 октября 2010

Я скачал recaptcha.dll в версиях 1.0.1.0 и 1.0.4.0. При попытке визуализации элемента управления я получаю следующее исключение:

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

Сведения об исключении: System.Security.SecurityException: сбой запроса разрешения типа 'System.Web.AspNetHostingPermission, System, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089'.

Трассировка стека: [SecurityException: сбой запроса разрешения типа 'System.Web.AspNetHostingPermission, System, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089'] System.Reflection.Assembly._GetType (имя строки, логическое значение throwOnError, логическое значение ignoreCase) +0 System.Web.UI.NamespaceTagNameToTypeMapper.GetControlType (строковое tagName, атрибуты IDictionary, логическое throwOnError) + 209

Решением этой проблемы, предоставляемой быстрым поиском в Google, является использование caspol.exe для добавления полного доверия к сборке recaptcha.dll.

C: \% path% \ caspol -af C: \ inetpub \ wwwroot \% path% \ bin \ recaptcha.dll

В этот момент я получаю следующую ошибку:

ОШИБКА: эта сборка не является подписью со строгим именем

Если не загружать исходный код и не перекомпилировать его локально, есть ли другой способ заставить это работать?

Ответы [ 5 ]

3 голосов
/ 19 января 2011

Я столкнулся с той же проблемой, и ваше решение помогло мне.Мне также пришлось выполнить следующие шаги для исходного кода reCAPTCHA ASP.NET.

1) Откройте файл AssemblyInfo.cs проекта DLL и добавьте следующий оператор using.

с использованием System.Security;

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

[сборка: AllowPartiallyTrustedCallers ()]

3) Повторно скопироватьdlls и повторно разверните свои проекты.Эта ошибка должна быть устранена.

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

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

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

2 голосов
/ 30 марта 2011

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

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

1 голос
/ 25 октября 2013

Я столкнулся с двумя разными проблемами безопасности, пытаясь развернуть reCAPTCHA от Google на нашем производственном сервере в среде общего хостинга на hostmysite.com

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

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

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

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

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

0 голосов
/ 11 февраля 2012

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

0 голосов
/ 11 ноября 2010

Будучи не в состоянии заставить это работать, используя неподписанную dll, которая сделана доступной для загрузки, я взял источник, скомпилировал и подписал его сам, и это прекрасно работает.

Было бы здорово, если бычто-то где-то по пути указывало, что мне, возможно, придется сделать это ...

...