Previous Entry Share Next Entry
Компонент MSCaptcha: генерирование каптчи в ASP.NET-сайте
Панда WTF !?
ect0plasm wrote in dotnetcookbook
При регистрации на различных ресурсах часто предусмотрена защита от автоматической регистрации — вас просят ввести цифры и буквы с картинки. Такой тест называется CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart).
Я расскажу про бесплатный компонент MSCaptcha, который позволит вставить каптчу в Ваш ASP.NET сайт.

Инструкция по установке:


1. Скачайте архив и разархивируйте его.
2. Скопируйте файлы MSCaptcha.dll и MSCaptcha.xml в директорию /bin Вашего ASP.NET-приложения.
3. Добавьте MSCaptcha.dll в References Вашего приложения.
4. Модифицируйте файл web.config в секцию <httphandlers> строчку:
      <add verb="GET" path="CaptchaImage.axd" type="MSCaptcha.CaptchaImageHandler, MSCaptcha"/>
5. Добавьте компонент MSCaptcha в Visual Studio Toolbox («Tools»->«Choose Toolbox Items...»).

Пример использования


1. Добавьте строчку в Ваш .aspx-файл:
      <%@ Register Assembly="MSCaptcha" Namespace="MSCaptcha" TagPrefix="msCaptcha" %>
2. В месте, где хотите разместить каптчу вставьте код (в этой строчке добавляется компонент-каптча с именем myCaptcha):
<msCaptcha:CaptchaControl ID="myCaptcha" runat="server" CaptchaBackgroundNoise="none" CaptchaLength="5" CaptchaHeight="60" CaptchaWidth="200" CaptchaLineNoise="None" CaptchaMinTimeout="5" CaptchaMaxTimeout="240" />

3. Разместите TextBox для ввода каптчи (например textBoxCaptcha). Далее Вы можете легко проверить верно ли пользователь ввёл надпись (пример на C#):
myCaptcha.ValidateCaptcha(textBoxCaptcha.Text);
if (!myCaptcha.UserValidated)
{
 // Сообщите пользователю об ошибке
 return;
}


Вы получите примерно такую каптчу:

Особенности компонента:


  • Возможность установки любого размера изображения
  • Возможность установить множество используемых символов и их количество
  • Возможность установить разнообразный шум на заднем фоне и шум в виде линий
  • Возможность установить период, в течении которого компонент будет активен
  • Набор различных шрифтов для Вашей каптчи.
  • Каптча сама перезагружается при любом Ajax-запросе.

Параметры:


  • CaptchaBackgroundNoise — Количество шума, который Вы хотите добавить на изображение. Шум нужен для того, что затруднить распознавание каптчи специальными программами. Помните, что при большом количестве шума обычные пользователи также могут испытывать затруднение в распознавании картинки. Поэтому рекомендуется поставить низкий уровень шума и повышать его, только если Вы заметили присутствие ботов на Вашем сайте. Возможные значения параметра: "none", "low", "medium", "high", "extreme". Значение по умолчанию: low.
  • CaptchaLength — Количество символов, которое будет содержать каптча. Значение по умолчанию: 5.
  • CaptchaHeight — Высота изображения. Минимальное значение — 31. Значение по умолчанию: 50.
  • CaptchaWidth — Ширина изображения. Минимальное значение — 61. Значение по умолчанию: 180.
  • CaptchaLineNoise — Добавление линий для затруднения распознавания изображения. Возможные значения параметра: "none", "low", "medium", "high", "extreme". Значение по умолчанию: none.
  • CaptchaMaximeout — Время в секундах, через которое каптча станет недействительной. Значение по умолчанию: 90.
  • CaptchaMinTimeout — Минимальное время в секундах существования каптчи, необходимое для активации каптчи. Это ещё одна защита от частой автоматической регистрации. Значение по умолчанию: 2.
  • CaptchaChars — Строка, которая определяет множество символов, используемых при генерации каптчи. Значение по умолчанию: "ABCDEFGHJKLMNPQRSTUVWXYZ23456789". Рекомендуется не использовать символы , O, 1, I, 8, B, т.к. наличие разных шрифтов может запутать пользователей.
  • CaptchaFont — Шрифт для каптчи. Если параметр не задан, то шрифт будет выбран случайным образом.
  • BackColor — Цвет заднего фона изображения.
  • FontColor — Цвет надписи.
  • LineColor — Цвет шума в виде линий
  • NoiseColor — Цвет шума на заднем фоне
  • CacheStrategy — Определяет где хранятся данные каптчи. Возможные значения: HttpRuntime (быстро, но используется локальный сервер), Session (более портативно через веб-формы). Значение по умолчанию: HttpRuntime.
  • ErrorMessage — Сообщение, которое появляется, если каптча была введена не верно. Значение по умолчанию: "The text you typed does not match the text in the image.".


Ссылки


Официальный сайт компонента MSCaptcha
Архив с компонентом
Статья о каптчах на Wikipedia.org

Оригинал статьи тут

?

Log in