Авторизация asp.net с использованием URL
Вероятно, этот вопрос уже задавался ранее, но, похоже, я не могу правильно сформулировать свой поиск, чтобы найти ответ.
Обычно, когда вы регистрируетесь, чтобы получить доступ к форуму в Интернете, вам отправляется электронное письмо об авторизации, и вы можете щелкнуть ссылку, ведущую на страницу, которая выполняет авторизацию.
Я хочу отправить письмо уже созданному пользователю (но не вошел в систему) и позволить ему принять предложение, щелкнув ссылку в письме. Ссылка на курс указывает на страницу, которая выполняет операции с базой данных и показывает какой-то результат.
Какие методы и / или маршрут я должен выбрать, чтобы реализовать это? И так как это связано с безопасностью, что я должен остерегаться?
С наилучшими пожеланиями, Каспер
1 ответ
Когда вы отправляете электронное письмо, генерируете большую случайную строку и сохраняете ее в таблице со своим идентификатором пользователя и некоторым указанием того, что будет делать ссылка.
Затем отправьте им письмо со ссылкой на DoSomething.aspx?id=long_string_here
,
Написать DoSomething.aspx
так что он ищет длинную строку и предоставляет пользователю подтверждение того, что он будет делать, и кнопку для этого. Вход в систему не требуется. Вы даже можете оставить пользователя в системе, если хотите.
После завершения действия или каждые X дней удаляйте строку из таблицы.
проблемы:
- Плохие люди могут попытаться попасть на вашу страницу случайными строками. Если ваши строки достаточно длинные и достаточно случайные, это не имеет значения, но вы можете ограничить доступ к странице или запретить более X запросов с IP-адреса за определенный период.
- Агрессивные спам-чекеры могут перейти по ссылке в теле письма. Убедитесь, что никакие операции не выполняются, просто зайдя на страницу; пользователь должен нажать на кнопку или иным образом вызвать POST.