sudevsu Ответов: 1

Отправить ссылку с одноразовым паролем и при действительном перенаправлении на другую ссылку


Здравствуйте эксперты,

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

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

Что я уже пробовал:

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

ZurdoDev

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

sudevsu

Мне не нужен код. Мне просто нужна идея, как и ньямми. Спасибо

1 Ответов

Рейтинг:
6

njammy

Ваш вопрос помечен ASP.NET но не уверен, в каких рамках.

Так, например,для веб-форм создайте страницу или обработчик ASHX, чтобы получить запрос от щелчка URL-адреса электронной почты.
Или...для MVC реализовать веб-API или контроллер для получения запроса.

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

Затем возьмите запрос и подтвердите его. Затем перенаправьте пользователя на страницу входа в систему.

Как только пользователь будет проверен, перенаправьте его на страницу загрузки.


sudevsu

Рамки ASP.NET форм 3.5

njammy

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

sudevsu

чтобы уточнить это, я хочу сделать...
Шаг 1: отправьте URL-адрес пользователям по электронной почте. Также отправьте уникальный пароль.
Шаг 2: пользователь при нажатии на ссылку запрашивает пароль, отправленный по электронной почте.
Шаг 3: Если это действительно так , перенаправьте на другую страницу для загрузки файла.
Если это неверно, запросите пароль с той же страницы. Не перенаправляйте до тех пор, пока это не будет действительно.

Шаг 4: загрузите файл.

Теперь я уже сделал здесь несколько вещей. Но я не понимаю, как я могу сделать url действительным только в течение 24 часов.
Как узнать, что этот пароль предназначен для этой ссылки/пользователя ?

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

njammy

На мой взгляд, попросив пользователя открыть и отправить электронную почту, нажмите на ссылку, а затем скопируйте и вставьте пароль из (того же? электронная почта?) - это слишком много шагов. Что бы я сделал, так это отправил пользователю электронное письмо со ссылкой с каким-то встроенным" кодом доступа", например
http://www.web.site/upload?key=SDFSASDNU23HD783.

Таким образом, идея заключается в этой части url-адреса "?key=SDFSASDNU23HD783". Предположим, что это зашифрованный текст из исходной строки: "id:1, key: 12345", где "id" - это Ваш идентификатор пользователя, а "key" - Ваш уникальный сгенерированный код доступа. Предположим, мы преобразуем строку id:1, ключ: 12345 в base64 и получаем "SDFSASDNU23HD783" (не реалистично, но вы поняли идею). Это может быть недостаточно безопасно, но это зависит от того, насколько безопасно вы хотите, чтобы это было так, поэтому на самом деле может быть лучше, чтобы пользователь скопировал и вставил код.

Теперь вы можете сохранить это в новой таблице базы данных вместе с вашим идентификатором пользователя и столбцом под названием "срок действия" (DateTime). Когда вы генерируете код, установите срок действия.
В моем примере url-адреса, когда страница загрузки получает запрос, сначала запросите базу данных, чтобы узнать, истекла ли часть кода доступа строки запроса или нет. если нет, аутентифицируйте пользователя, если пользователь не прав, отошлите его и обновите значение таблицы базы данных кода доступа как VOID, потому что кто-то пытался попытаться получить доступ с неправильным сочетанием код/имя пользователя.

Есть смысл?

sudevsu

В этом есть смысл... Меня беспокоят вопросы безопасности. Однако позвольте мне попробовать

njammy

Всего наилучшего.

sudevsu

Еще раз спасибо @NJammy