0

나 자신을 가르치고있다. ASP MVC 3. 나는 지금 사용자 계정 시스템을 통합해야 할 단계에 도달했다. 표준 Asp .net MVC 3 멤버십 공급자로 시작하여 대부분의 부분에 대해이를 고수하고 다른 모든 사용자 세부 정보를 사용자 테이블에 연결된 다른 테이블에 저장하려고합니다. 이 작업을 수행 할 수있는 쉬운 방법은 사용자 지정 멤버 자격 공급자를 구축하지 않고 거기에 1) 확인 이메일 2)Asp.net MVC3 사용자 등록

T & C.을 수락 :

그러나, 나는 등록시에 두 가지 기능을 추가하고 싶습니다 ?

답변

3

저는 개인적으로 전자 메일/이용 약관이 회원 가입의 일부가되어야한다는 확신을 가지지 않습니다.

일반적으로 AccountController (또는 가지고있는 동등한 것)의 내용을 처리하게됩니다. 당신이 등록 작업이있는 경우 사용자를 저장하기 위해 멤버 자격 공급자를 사용했습니다 모든 것이 좋아 보인다 일단

예를 들어, 당신은 그 (코드 작업에서 트리거되는)

1
확인 이메일을 보낼 것이다

이처럼 (모델 디렉토리에 AccountModels.cs) 규정 및 조건 RegisterModel 클래스에 계정 모델을 받아 들일 추가 할 수 있습니다

[Display(Name = "Agree to Terms")] 
public bool AgreeTandC { get; set; } 

당신은 등록보기를 업데이트해야,이에 대한 표시를 추가 체크 상자가 표시되고 원하는 텍스트로 표시됩니다.

불행히도 속성은 bool이며 확인되지 않는 false false가 아니기 때문에이 속성을 사용할 수 없습니다. 사용자 지정 bool 필수 특성을 만드는 방법이 있지만 작업은 약간 있습니다.

if(model.AgreeTandC == false) 
{ 
    ModelState.AddModelError("AgreeTandC", "You must agree to the Terms and Conditions"); 
    return View(model); 
} 

를 내가 전에 그 같은 ModelState.AddModelError를 사용하지 않은하지만 난 그것을 생각 :이 확인되는 경우는 다음과 같이 볼 수있는 계정 컨트롤러의 등록 방법에 무언가를 체크를 추가하는 것이 더 쉬울 수도 있습니다 (사용자에게 오류를 표시하십시오) 그렇지 않으면 ViewBag.Error = "You must agree to the Terms and Conditions";으로 바꾸고 이것을 등록보기 모델에 추가하십시오.

이메일은 어렵지 않습니다. MvcMailer과 같은 이메일을 보낼 수있는 기능을 추가해야합니다. 또한 사용자에게 권한을 부여하지 않으려면 계정 컨트롤러의 등록 방법에서 Membership.CreateUser 행을 변경해야합니다.

Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, false, null, out createStatus); 

나는 그렇게해야한다고 생각합니다. 그런 다음 createStatus == MembershipCreateStatus.Success)는 확인 GUID로 이메일을 보내는 경우 string confirmationGuid = user.ProviderUserKey.ToString();

또한 확인 ID를 허용하는 방법해야 할 것이다 (그들은 이메일에있는 링크를 클릭 할 때를.) 난 그냥 간단히에 감동

전자 메일 부분, 거기에 완전한 세부 사항에 등록 이메일을 보내는로 이동하는 많은 블로그가 있습니다.