Архив блога

Июнь 2015 >>
п в с ч п с в
25 26 27 28 29 30 31
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 1 2 3 4 5
  

Категории





    Блоги

      Добавить

      Использование radCaptcha при создании модулей в проектах DotNetNuke

      от Маркус в 31 июля 2012 г. 14:25

      При публикации общедоступных интерактивных форм на страницах сайтов, администраторы часто сталкиваются с проблемой ботов форм, которые засоряют спамом базы данных и перегружают веб-сервер по средствам автоматического заполнения этих форм. Для борьбы с этим явлением требуется вставка в форму капчи (captcha), которая успешно помогает препятствовать ботам безконрольно заполненять и отправлять данные на сервер.  Исторически, в DotNetNuke, капча была доступна с самых ранних версий продукта, но она была ограничена в возможностях настроек, включая отсутствие возможности изменения ее внешнего вида. Но это было до момента пока разработчики DotNetNuke не предоставили возможность использовать пакет элементов для построения пользовательского интерфейса от Telerik. В этом пакете есть программный объект RadCaptcha, который несет в себе контрол капчи. Он отвечает всем современным требованиям, но его использование не получило широкое распространение из-за  того, что он не был достаточно задокументирован. В данной публикации я расскажу, как использовать RadCaptcha при написании собственных модулей для проектов DotNetNuke. [marcusBlog-RadCaptcha-2.jpg]

      Прежде, чем я углублюсь в процесс механики использования RadCaptcha, хочу немного сказать о том почему я рекомендую использовать RadCaptcha вместо существующего в DotNetNuke стандартного объекта Captcha или иных решений.  Начнем с того, что в RadCaptcha имеется множество настроек вывода капчи, такие как: аудио, регенерация по запросу, которая значительно помогает  восприятию пользователям, особенно с ограниченными возможностями. Кроме этого, RadCaptcha доступна через DotNetNuke API, что для разработчиков дает несомненное удобство его использования без внесений изменений в web.config и так далее.

      Реализация способа использования RadCaptcha в модулях на сайтах DotNetNuke довольно проста и состоит из нескольких основных шагов. Для начала следует поместить в заголовок кода следующий тег:

      В некоторых случаях, чтобы не получить ошибку компиляции, Вы должны будете в проекте добавить ссылку на объект DotNetNuke.Web.dll.

      Далее, необходимо добавить тег самой капчи в код самой формы. Примерно, это может выглядеть так:

      div class="dnnFormItem">dnn:DNN:DNNCAPTCHA id="ctlCaptcha" ErrorMessage="Введенный код не соответсвует коду, который изображен на картинке. Пожалуйста попробуйте еще раз" runat="server" CaptchaTextBoxLabel="Пожалуйста, введите символы, которые Вы видете на картинке в ниже расположенное поле." EnableRefreshImage="True" CaptchaWidth="300">dnn:DNN:DNNCAPTCHA>div>

      Подробно о наборе свойств и настройке параметров  контрола  RadCaptcha  и внесение изменений в тэг   можно ознакомится в технической документации.

      Теперь, после того, как Вы это сделали, можете просто проверить работу контрола ctlCaptcha в действии. Не забудьте использовать свойство IsValid в коде для проверки корректного заполнения формы.

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

      Чтобы исправить это, внесите CSS скрипт в файл module.css по своему усмотрению. Ниже я приведу основные классы:

      .dnnForm .dnnFormItem .RadCaptcha { margin-left:32%; }
      .dnnForm .dnnFormItem .RadCaptcha LABEL { width: inherit; float: left; }

      Приведенный пример свойств классов теперь будет отображать капчу в следующем виде:

      Теперь Вы сможете с легкостью использовать RadCaptcha в своих проектах на DotNetNuke. Желаю удачи

      Blogs Parent Separator Блог Маркуса
      Модуль
      Безопасность
      Распечатать
      Автор
      Маркус

      Обо всем по-немногу о DNN.

      • Добавить комментарий
      • Комментировать