Как отправить ссылку для подтверждения по электронной почте пользователю? - PullRequest
5 голосов
/ 20 марта 2011

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

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

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

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

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

Ответы [ 5 ]

4 голосов
/ 20 марта 2011

Во-первых, вы должны создать таблицу 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, а также отправит подтверждение по электронной почте.

1 голос
/ 26 мая 2013

Ответ от 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 и сохраните запись конкретного пользователя в базе данных.

0 голосов
/ 13 июня 2011

.NET 4 Framework

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

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

0 голосов
/ 20 марта 2011

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

MailDefinition элемента управления CreateUserWizard

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

0 голосов
/ 20 марта 2011

Пользователи

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

для отправки чека электронной почты this .

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

...