Регистрация ASP.NET MVC с капчей

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

Моя проблема заключается в том, что после сбора информации об имени, фамилии, адресе электронной почты и пароле я могу безопасно отправить их на страницу проверки капчи (не отправляя их с помощью строки запроса, потому что пароль там будет простым). Использование TempData и Session не будет отслеживаться в этом проекте.

Спасибо!


person Jeff Chalmers    schedule 28.07.2010    source источник
comment
почему бы не поставить капчу на той же странице и не поймать ее до того, как произойдет отправка?   -  person Dustin Laine    schedule 28.07.2010
comment
Есть ли причина, по которой вы не хотите просто поставить капчу на той же странице?   -  person spinon    schedule 28.07.2010
comment
Потому что у меня не так много места на главной странице, а изображение капчи не гармонирует с дизайном моей домашней страницы.   -  person Jeff Chalmers    schedule 28.07.2010
comment
Как вы собираетесь поддерживать состояние аутентификации ваших пользователей без сохранения некоторых данных сеанса? Вам нужно поддерживать некоторое состояние, т.е. FilledInCaptcha, IsAuthenticated и т. д.   -  person PabloC    schedule 28.07.2010


Ответы (2)


Прежде всего, вы можете использовать Recaptcha для .NET (http://recaptchanet.codeplex.com), чтобы использовать надежное и безопасное решение по капче для вашего проекта MVC .NET.

Когда вы отправляете форму, создайте файл cookie и зашифруйте его значения с помощью идентификатора сеанса пользователя в качестве ключа, а срок его действия будет примерно 5 минут. Прочитайте cookie со страницы с капчей. Я предполагаю, что вы не хотите хранить значения на сервере, и строка запроса явно невозможна.

person Shaan    schedule 03.02.2013

Я бы рекомендовал использовать MVCRecaptcha (https://mvcrecaptcha.codeplex.com/) . Обратите внимание - конкретно MVCRecaptcha, а не некоторые другие тесно связанные реализации.

Загрузите пакет из Nuget, однако УБЕДИТЕСЬ, что вы не загружаете другие доступные пакеты Recaptcha — вам следует специально загрузить MVC recaptcha.

Затем следуйте остальным инструкциям на сайте MVC recaptcha codeplex, чтобы приступить к работе.

person Community    schedule 07.01.2014