Как отправить ссылку для подтверждения по электронной почте пользователю?

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

Когда пользователь нажимает эту ссылку, тогда поле userEnable в базе данных изменяется с "ложь" на "истина".

Как отправить подтверждение по электронной почте пользователю, когда пользователь нажимает кнопку регистрации.

Когда пользователь нажимает на эту ссылку подтверждения, то как будет поле UserEnable изменить с "ложного" на "истинный"

Я использую asp.net 4.0 с VB.NET в качестве языка и SQL Server 2008 для моей базы данных.

5 ответов

Решение

Во-первых, вы должны создать таблицу User в базе данных с таким столбцом, как Active = false в базе данных (1-битный тип поля базы данных). Затем, после того, как пользователь создал свою учетную запись, вы должны отправить ему ссылку для активации со строкой запроса, содержащей руководство по активации пользователя. Что-то вроде:

Пожалуйста, активируйте свою учетную запись на www.mysite.com?id=21EC2020-3AEA-1069-A2DD-08002B30309D

На странице подтверждения вы будете проверять этот запрос как

var id = Response.QueryString["id"]
if (id!= null) userBL.ActivateUser(id);

Метод ActivateUser() обновит поле до true, а также отправит подтверждение по электронной почте.

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

Что-то вроде следующих полей для каждого пользователя:

userID: getUniqueUserID()
confirmed: false,
confirmCode: getRandomUUID()

confirmCode хранится отдельно от уникального userID для каждой записи и должен использоваться только тогда, когда электронное письмо отправлено на адрес, используемый при регистрации. Затем я отправляю URL, как показано ниже:

http://example.com/activate?id=43d24b9ca73&c=16b4cf80-c59a-11e2-8b8b-0800200c9a66

Затем вы можете получить поля запроса на стороне сервера и использовать id для того, чтобы найти конкретную запись пользователя на основе уникального userIDубедитесь, что c полевые совпадения confirmCode в записи, а затем установите confirmed в поле true и сохраните запись конкретного пользователя в базе данных.

.NET 4 Framework

Посмотрите это видео о том, как это сделать.

http://www.asp.net/security/videos/implement-the-registration-verification-pattern

пользователей

ID | Имя пользователя Email | UserEnabled

чтобы отправить E-mail, проверьте это.

Когда вы получаете ссылку для подтверждения, вы выполняете поиск на основе поля "Электронная почта" и устанавливаете для его соответствующего UserEnabled значение true.

Если вы используете встроенные средства управления членством ASP.NET, вы можете использовать

Свойство MailDefinition элемента управления CreateUserWizard

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

Другие вопросы по тегам