Авторизация asp.net с использованием URL

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

Обычно, когда вы регистрируетесь, чтобы получить доступ к форуму в Интернете, вам отправляется электронное письмо об авторизации, и вы можете щелкнуть ссылку, ведущую на страницу, которая выполняет авторизацию.

Я хочу отправить письмо уже созданному пользователю (но не вошел в систему) и позволить ему принять предложение, щелкнув ссылку в письме. Ссылка на курс указывает на страницу, которая выполняет операции с базой данных и показывает какой-то результат.

Какие методы и / или маршрут я должен выбрать, чтобы реализовать это? И так как это связано с безопасностью, что я должен остерегаться?

С наилучшими пожеланиями, Каспер

1 ответ

Решение

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

Затем отправьте им письмо со ссылкой на DoSomething.aspx?id=long_string_here,

Написать DoSomething.aspx так что он ищет длинную строку и предоставляет пользователю подтверждение того, что он будет делать, и кнопку для этого. Вход в систему не требуется. Вы даже можете оставить пользователя в системе, если хотите.

После завершения действия или каждые X дней удаляйте строку из таблицы.

проблемы:

  1. Плохие люди могут попытаться попасть на вашу страницу случайными строками. Если ваши строки достаточно длинные и достаточно случайные, это не имеет значения, но вы можете ограничить доступ к странице или запретить более X запросов с IP-адреса за определенный период.
  2. Агрессивные спам-чекеры могут перейти по ссылке в теле письма. Убедитесь, что никакие операции не выполняются, просто зайдя на страницу; пользователь должен нажать на кнопку или иным образом вызвать POST.
Другие вопросы по тегам