2010-03-22 3 views
4

기본적으로 회원 API는 사용자 아이디 필드에 별도의 사용자 이름 필드를 사용하여 로그인합니다. 사용자 로그인을 위해 이메일 주소를 사용하고 싶습니다. 이것은 좋은 생각입니까?이메일 주소를 사용하여 로그인 - 회원 API

로그인을 수정하고, 사용자를 등록하며,이를 지원하기 위해 비밀번호를 잊으셨습니까?

답변

5

확실히 가능합니다. 한 가지 방법은 CreateUserWizard 템플릿을 변경하고 기본 Email 텍스트 상자를 제거하고 EmailRequired를 false로 설정하는 것입니다. 그런 다음 사용자 이름 레이블을 전자 메일로 변경하십시오. CreateUserWizard 컨트롤을 사용하는 경우 텍스트 상자 ID를 UserName으로 유지해야합니다. 그렇지 않으면 오류가 발생합니다. 사용자의 이메일 주소가 사용자 이름 열에 저장되므로 평소와 같은 방식으로 '사용자 이름'에 액세스 할 수 있습니다.

원할 경우 CreatedUser 이벤트를 처리하여 이메일 열을 사용자 이름으로 채울 수도 있습니다. 예를 들어 다음과 같이 할 수 있습니다.

MembershipUser currentUser = Membership.GetUser(); 
currentUser.Email = currentUser.UserName; 
Membership.UpdateUser(currentUser); 

이렇게하면 멤버십 방법을 사용할 때 이메일 열이 채워집니다. 주요 단점은 회원 API가 사용자 이름을 변경할 수 없다는 것입니다. 따라서 사용자가 이메일 주소를 변경하면 사용자 이름은 이전 이메일 주소로 유지됩니다. 이 문제를 해결하려면 멤버쉽 API를 건너 뛰고 곧바로 SQL 코드로 가야합니다. 당신은 그것을하는 방법을 찾을 수 있습니다 here

0

나는 로그인 이름에 내 이메일 주소를 사용하는 것을 좋아합니다. 특정 사이트에 대한 로그인을 기억할 필요가 없으며 아무도 내 이메일 주소를 사용해서는 안되기 때문에 일반적으로 매우 잘 작동합니다.

하지만 ... Tenaciouslmpy의 답변 외에 다른 단점은 이러한 "사용자 이름"노출에주의해야한다는 것입니다. 끝내려면 "표시 이름"이라는 필드를 만들어야합니다. 어느 것이나 괜찮습니다.하지만이 작업을 수행하기 위해서는 장기적으로 어떤 작업을 저장하지 않을 것입니다.

+1

웹 페이지에 전자 메일 주소를 표시하는 것을 의미하는 이러한 사용자 이름을 표시하면 보안상의 이유로 사용자 이름을 피할 수 있습니까? – DotnetDude

+1

예, 예. 스팸 발송자가 이메일 주소를 수집 할 수있는 방법으로 이메일 주소를 공개하지 않으려는 사람은 아무도 없습니다. – Bryan

+0

사용자 이름을 '비밀'로 유지하는 데 좋은 지적이긴하지만 내 관리자 시간 대부분이 사람들이 자신의 사용자 이름을 다시 기억하도록 돕기 때문에 내 사이트의 일부에 대해이 작업을 수행하고 있습니다. 이메일 주소를 사용하면 그로드를 상당히 줄일 수 있습니다. ! –

관련 문제