Если вы не хотите писать свои собственные Captcha (кто это делает!), Вы можете использовать библиотеку Captcha, например:
http://www.coderjournal.com/2008/03/aspnet-mvc-captcha/
С помощью библиотеки Captcha вы добавляете dll в свой проект и используете API Captcha для отображения и проверки изображения Captcha и Вход.
Отображение Captcha:
<label for="captcha">Enter <%= Html.CaptchaImage(50, 180) %> Below</label><br />
<%= Html.TextBox("captcha") %>
А затем убедитесь, что вы добавили атрибут Captcha в свой метод:
[CaptchaValidation("captcha")]
Recaptcha - лишь один из вариантов, когда дело доходит до Captcha (фактически, это вариант, выбранный Stack Overflow!)
Надеюсь, еще не поздно вложить мои два цента ...
Я столкнулся с той же проблемой, когда пытался реализовать проверку CAPTCHA на моем первом Сайт ASP.NET MVC. Обнаружив множество библиотек, я нашел то, что казалось (и все еще кажется) самой простой и эффективной библиотекой: MvcReCaptcha . С тех пор я использовал эту библиотеку для всех своих сайтов ASP.NET MVC.
После реализации MvcReCaptcha он безопасно генерирует CAPTCHA для вашего представления и предоставляет логическое значение того, была ли проверка успешна для действия.
Вот как это реализовать после загрузки и обращения к MvcReCaptcha DLL из вашего проекта (инструкции скопированы с домашней страницы MvcReCaptcha ):
Использование ReCaptcha с ASP.NET MVC:
Это теперь очень легко настроить ReCaptcha на вашем веб-сайте Asp.Net MVC.
Подпишитесь на reCaptcha, http://recaptcha.net/whyrecaptcha.html
Как использовать:
Шаг 1. Добавьте свои общедоступные и частные ключ к вашему файлу web.config в раздел appsettings
Шаг 2. Добавьте новое пространство имен в свой web.config
<пространства имен>
Шаг 3. Реализуйте логику в своем вид, чтобы фактически отобразить Captcha элемент управления
<% = Html.GenerateCaptcha ()%>
Шаг 4. Реализуйте контроллер. Действие, которое будет обрабатывать форму отправка и проверка Captcha
[CaptchaValidator] [AcceptVerbs (HttpVerbs.Post)] общедоступный ActionResult CreateComment (идентификатор Int32, bool captchaValid) { если (! captchaValid) { ModelState.AddModelError ("_ FORM", "Вы неправильно ввели проверочное слово. Повторите попытку."); } еще { // Если мы зашли так далеко, что-то не удалось, повторно отобразим форму return View (); } }
Удачи!