none
Случайная ссылка MVC3 RRS feed

Ответы

  • На самом деле в этом ничего сложного нет. Я пока не встречал готового компонента, хотя может он есть. Подобный механизм мы реализуем сами.

    1. Делаем страницу регистрации.

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

    3.Посылаем URL на e-mail пользователя. У Вас должен быть специально отведённый URL  с дополнительным параметром -  ваша случайная строка.

    4.Отводим специяльный контроллер для чтения этих данных. Когда пользователь переходит по этой ссылке, контроллер читает эту строку и если она есть в БД, копирует данные пользователя в таблицу аутентификации и удаляет их из первой таблицы. И перенаправляет пользователя на определённую страницу, авторизуя его предварительно.

    25 декабря 2012 г. 8:52
    Модератор

Все ответы

  • На самом деле в этом ничего сложного нет. Я пока не встречал готового компонента, хотя может он есть. Подобный механизм мы реализуем сами.

    1. Делаем страницу регистрации.

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

    3.Посылаем URL на e-mail пользователя. У Вас должен быть специально отведённый URL  с дополнительным параметром -  ваша случайная строка.

    4.Отводим специяльный контроллер для чтения этих данных. Когда пользователь переходит по этой ссылке, контроллер читает эту строку и если она есть в БД, копирует данные пользователя в таблицу аутентификации и удаляет их из первой таблицы. И перенаправляет пользователя на определённую страницу, авторизуя его предварительно.

    25 декабря 2012 г. 8:52
    Модератор
  • Спасибо, примерно так и представлял. А если более сложный вариант?

    https://hosting.ru/Lela5Mmu1BpNOE9vbz2qIMoiJQmNpsMspOMz7Jkxv45avAxgzENqDXT2sMHZn9KT

    25 декабря 2012 г. 9:19
  • В каком смыле сложный, в плане строки?
    25 декабря 2012 г. 9:21
    Модератор
  • Ну там не параметр secret, как в примере, передаётся, а как-то делается ссылка, которую надо как-то вставить в маршрут.

    На PHP элементарно делается: например создаётся директория со случайным именем и в неё записывается файл index.php. А как в MVC?

    25 декабря 2012 г. 9:35
  • В MVC нет нужды создавать файл физически и тратить на это ресурсы, так как есть маршрутизация. Можете использовать примерно такой маршрут, сделав его первым.

    routes.MapRoute("MailValidator", "vfield/{secret}",
                new { controller = "MailValidator", action = "Validate" });

    25 декабря 2012 г. 9:44
    Модератор
  • Привет. Пожалуйста, не забывайте отмечать решение проблемы (кнопка "Пометить как ответ" под сообщением). Спасибо. 

    Для связи [mail]

    26 декабря 2012 г. 8:41
    Модератор