2013-10-17 4 views
0

사용자가 등록 절차를 완료하면 사용자에게 확인 이메일을 보내야합니다. 전자 메일을 보내는 방법을 알고 있지만 확인 링크를 보내는 프로세스가 무엇인지 알아야합니다. 확인 토큰을 저장하고 암호화하여 보내려면 테이블에 열을 만들어야합니다. 확인 토큰을 저장해야하는 경우이 토큰을 생성하는 가장 좋은 방법은 무엇입니까? 나는 어떤 해결책도 시도하지 않는다.Asp.net 확인 이메일

+0

"나는 어떤 해결책을 시도하지 않습니다."우리는 당신이 붙잡혀 있다면 전나무 무언가를 시도한 다음 질문으로 돌아 오는 것을 선호합니다. –

+0

먼저 뭔가를 시도한 다음 여기로 와서 알려주십시오. –

답변

0

예. 확인 토큰을 저장하려면 테이블에 열을 만들어야합니다.

당신은 "GUID"

과 동일한 할 수있는 간단한 방법을 활성화 코드를 가질 수있다 :

  1. 는 사용자 ID, 인증 토큰 생성 날짜를 결합하여 쿼리 문자열을 구축 할 수 있습니다. 결합 된 문자열

    "? 사용자 ="+ Convert.ToBase64String (Encoding.Unicode.GetBytes (문자열의

  2. 마 인코딩입니다.형식 ("사용자 = {0} & 코드 = {1} & cd = {2}", 사용자 ID, 확인, 생성 날짜))));

  3. 는 "&"

    인코딩을 사용하여 spiting하여 쿼리 문자열

  4. 별도의 결합 된 값을 디코딩, 사용자

  5. 사용자가 링크를 클릭

    에 대한 링크를 보냅니다. Unicode.GetString (Convert.FromBase64String (ActivationDetails)). Split (새 Char [] { '&'});

귀하는 계정을 활성화하는 데 필요한 모든 값을 보유하고 있습니다. 또한 논리 및 암호화 방법을 추가 할 수 있습니다. 그러나 기본은 동일합니다.

희망이 도움이됩니다.

0

"ActivationToken"과 같은 필드를 생성하고 GUID를 생성하는 것이 좋습니다. newid() 함수를 호출하거나 C#에서 Guid.NewGuid()를 호출하여 SQL에서 직접이 작업을 수행 할 수 있습니다. 이것은 무차별 적으로 불가능한 옆에있는 매우 독특하거나 무작위적인 값입니다.

그래서 사용자 등록, 당신은 같은 것을 할 것이다 때 : 사용자 ID, 당신은 할 수 이미 GUID 경우

Update tblUsers set Active=1 where ActivationToken={yourActivationGuid} 

http://yoururl.com/Activate.aspx?token= {yourActivationGuid} : 링크는 같은 것

insert into tblUsers (Username, Password, Active, ActivationToken) values ('johndoe', 'mypassword', 0, newid()) 

을 아마도 그냥 aspnet_user 테이블을 사용하는 경우와 같이 사용하면됩니다. 로그인을 허용하지 않는 경우 Active 플래그가 true로 설정되어 있는지 확인하십시오. 그렇지 않은 경우 로그인을 허용하지 마십시오. 당신이 할 수있는 로그인을 그래서

검증하는 :

Guid theVerificationCode; 
theVerificationCode = Guid.NewGuid(); 

지금 데이터베이스 열이 GUID 값을 저장 :

select * from tblUsers where Username="johndoe" and Password="mypassword" and Active=1 
2

나는 사용자가 성공적으로 다음과 같이 등록 할 때 GUID를 생성하는 것이 좋습니다 아마도 User과 같은 표에 있습니다. 당신은 이메일을 보낼 때

지금,이 같은 쿼리 문자열을 통해 URL의 한 부분으로 인증 코드 값을 제공 할 수 있습니다

string theVerificationCode = GetVerificationCodeFromDatabase(); 
string theEmailLink = "https://www.yoursite.com/YourApp/Verify.aspx?code=" + theVerificationCode; 

마지막으로, 당신은 Verify.aspx에 논리를 구축해야합니다 쿼리 문자열에 전달 된 내용과 일치하는 페이지가 데이터베이스에있는 것과 일치하는지 여부와 일치하는 경우 사용자가 인증하도록 허용하고 그렇지 않으면 오류 메시지를 표시합니다.