2012-01-06 4 views
0

이 내 작업 방법은이메일 확인 asp.net

 Sub emailConfirm() 
    Dim email As String = txtMail.Text 
    Dim name As String = txtPrenom.Text + txtNom.Text 

    Dim mail As MailMessage = New MailMessage() 
    'mail.To.Add("[email protected]") 
    mail.To.Add(email) 
    mail.From = New MailAddress("[email protected]") 
    mail.Subject = "Email using Gmail" 

    Dim Body As String = "Hi " + name + ", this mail is to confirm your registration" + "Click on the link to confirm please" + " Link(check note) " 
    mail.Body = Body 

    mail.IsBodyHtml = True 
    Dim smtp As SmtpClient = New SmtpClient() 
    smtp.Host = "smtp.gmail.com" 
    smtp.Port = 587 
    smtp.Credentials = New System.Net.NetworkCredential("[email protected]", "12345") 
    smtp.EnableSsl = True 
    smtp.Send(mail) 


End Sub 

메모를 이메일을 보내 : 나는 login.aspx에 고유 식별자를 링크는 고유 식별자를 포함 보내고 확인하려면

I 돈 이 작업을 수행 할 때 '는 t이이

01 Vb.net에 ...

내가 그물에 흥미로운 아무것도 발견 ...

을 알고

나중에 보안을 추가하겠습니다.

도움 주셔서 감사합니다.

+1

단순한 링크 이상의 의미가 있습니다. 모든 링크는 사용자를 귀하의 사이트로 보냅니다. 사이트에서 확인을 어떻게 처리합니까? 로그인 페이지로 연결 한 다음 첫 번째 로그인 정보를 확인으로 처리하면됩니까? 어쩌면 시간에 민감한 키를 저장하고 (주어진 시간 창에서 확인하기를 원할 경우) 쿼리 문자열에 키가있는 확인 페이지에 대한 링크를 보낼 수 있습니까? – David

+1

사이드 노트 : 비밀번호를 이메일에 원격으로 포함 할 수 없어도됩니다. 암호를 사용하지 않아야합니다. 해싱 된 버전의 암호가 있어야하며 저장된 해시와 비교하기 위해 로그인에 해싱 암호가 있어야합니다. 절대 암호를 일반 텍스트로 저장하지 마십시오. 어딘가에. 이제까지. – David

답변

2

음, 먼저 사용자 이름과 비밀번호를 이메일에 넣지 마십시오. 그건 좀 어색해.

둘째, 대부분의 사이트는 이제 다음을 수행하십시오

  1. 사용자 계정을 사용자에게 전송
  2. 이메일을 작성합니다. 이메일의 링크에는 사용자 이름과 비밀번호가 아니라 고유 한 식별자가 포함되어 있습니다.
  3. 사용자가 링크를 클릭합니다. 이 시점에서 페이지는 고유 ID가 유효한지 테스트합니다. 그렇다면 귀하의 계정을 확인해 주셔서 감사합니다. 그런 다음 로그인 양식을 표시합니다.
  4. 사용자가 로그인 자격 증명을 입력합니다.

이메일은 실제 사용자 이름/pw 정보를 보내지 않았습니다.

+0

고맙지 만 2와 3을 수행하는 방법. – FrankSharp

+2

@FrankSharp : 사용자 레코드를 만들 때 데이터베이스에 저장할 고유 한 ID (해당 레코드의 일부 또는 연결된 레코드)를 만들 수도 있습니다. 해당 ID는 이메일의 링크에 쿼리 문자열 매개 변수로 포함됩니다. 사용자가 확인 또는 로그인 페이지를 방문하고 쿼리 문자열에 이러한 ID가 있으면 데이터베이스에 저장된 ID와 비교하십시오. 발견되면 계정이 확인됩니다. 찾을 수 없으면 해당 오류로 리디렉션하십시오. – David

+0

잘했다. David. – NotMe