G+

Captcha asp.net mvc

Программирование Asp.net
Предыдущий Следующий

captcha Я очень не люблю вводить CAPTCHA на разных сайтах, но как программисту приходиться прикручивать такой контрол к сайтам. Когда было поставлена такая задача, то свою капчу писать лень, искал в интернет и нашел. Очень простая в использовании Captcha Mvc.

Итак, как прикурить ее к сайту. Для начала воспользуйтесь сервисом nuget. Для mvc3 команда:
PM> Install-Package CaptchaMvc.Mvc3

Для mvc4 команда:
PM> Install-Package CaptchaMvc.Mvc4

В ваш проект будет добавлена библиотека CaptchaMvc.dll

 Следующим шагом вам нужно прописать маршруты, которые будут формировать картинку. Добавляем к Route команды:

routes.MapRoute("Captcha", "DefaultCaptcha/Generate", new { controller = "DefaultCaptcha", action = "Generate" });

routes.MapRoute("CaptchaRefresh", "DefaultCaptcha/Refresh", new { controller = "DefaultCaptcha", action = "Refresh" });

Потом в для ваших view Включаем пространство имен @using CaptchaMvc.HtmlHelpers. Далье в самом html в нужно для капчи месте добавляем код:

обычная капча:
Html.Captcha("Обновить", "Введите защитные символы:", 5, "Обязательное поле", true)

математическая капча:
Html.MathCaptcha("Обновить", "Введите результат операции:", "Обязательное поле", true)

На сервер я проверяю, правильно ли человек ввел код:

        [HttpPost]
        public ActionResult Index(string empty)
        {
            if (this.IsCaptchaValid("Captcha is not valid"))
            {
                TempData["Message"] = "Message: captcha is valid.";
                return View();
            }

            TempData["ErrorMessage"] = "Error: captcha is not valid.";
            return View();
        }

Комментарий:
  • В 09.06.2014 16:14:46, Аноним

    HI jack

  • В 10.06.2014 13:26:49, Аноним

    Не работает, говорит, что не может найти определение для IsCaptchaValid

  • В 10.06.2014 13:41:00, Аноним

    Не работает, картинку видно, но проверку не производит. Не видно ссылку обновления картинки. Страница перезагружается вместе с картинкой.

  • В 10.06.2014 18:48:36,

    нужно в контроллер вверху прописать using CaptchaMvc.HtmlHelpers;

  • В 16.02.2015 14:53:02, Аноним

    Следующим шагом вам нужно прописать маршруты, которые будут формировать картинку. Добавляем к Route команды: routes.MapRoute("Captcha", "DefaultCaptcha/Generate", new { controller = "DefaultCaptcha", action = "Generate" }); routes.MapRoute("CaptchaRefresh", "DefaultCaptcha/Refresh", new { controller = "DefaultCaptcha", action = "Refresh" }); Зачем?

  • В 16.02.2015 15:37:49,

    Если Вы оставили то правило в маршрутах, которые есть по умолчанию, то разумеется ничего дописывать не нужно.

Самостоятельный отпуск Опыт заказа вывоза мусора в Киеве