2013-02-25 2 views
18

MVC4 인터넷 템플릿을 사용하여 웹 애플리케이션을 작성했습니다. 실제로 사용자 관리를 위해 복잡한 작업이 필요하지 않으므로 기본 SimpleMembershipProvider를 사용했습니다. App_Start의 멤버쉽을 초기화하고 있으며 역할과 사용자를 설정하고 작업하고 있습니다. SSO 또는 다른 OAuth 기능을 사용하지 않습니다. 이제 나는 암호를 잊어 버린 테스터를두고 하루 종일 인터넷 검색을 한 후 암호를 재설정하거나 변경하는 방법을 모른다는 사실을 깨닫습니다!MVC4에서 SimpleMembership을 사용하여 비밀번호를 재설정하거나 변경하는 방법은 무엇입니까?

설명서를 읽고 ResetPassword 함수 is not supported if using SimpleMembership을 찾았습니다.

  1. 스위치가 지정한 뭔가 사용자의 암호를 재설정 SimpleMembership 테이블과 형식
  2. 를 사용하여 표준 회원으로 SimpleMembership에서 : 내 질문에, 어떻게 하나가 어떻게됩니까?

SimpleMembership을 사용하도록 (이론적으로) 멤버 자격 공급자를 설정하기 위해 web.config 설정을 찾았지만 사용할 테이블을 지정하는 방법이 확실하지 않습니다. (올바른 방법이라고 가정합니다.).

Web.config의 섹션 :

<roleManager enabled="true" defaultProvider="SimpleRoleProvider"> 
    <providers> 
    <clear/> 
    <add name="SimpleRoleProvider" type="WebMatrix.WebData.SimpleRoleProvider, WebMatrix.WebData"/> 
    </providers> 
</roleManager> 
<membership defaultProvider="SimpleMembershipProvider"> 
    <providers> 
    <clear/> 
    <add name="SimpleMembershipProvider" type="WebMatrix.WebData.SimpleMembershipProvider, WebMatrix.WebData" /> 
    </providers> 
</membership> 

내가 (생각) 현재 InitializeDatabaseConnection 나는 Web.config의에서이 필요합니다 : 제대로 당신이 필요

WebSecurity.InitializeDatabaseConnection("UPEFSSecurity", "Datamart_User", "UserId", "UserName", autoCreateTables: true); 
+0

http://stackoverflow.com/questions/13212938/forgot-password-email-confirmation-in-asp-net-mvc-webmatrix/ 16985811 # 16985811 이것은 충분합니다. :) –

답변

45

이 작업을 수행하려면 이메일 복구 링크를 설정하십시오. 그러나 여기 API는 당신이 만드는 것입니다 호출입니다 :

var token = WebSecurity.GeneratePasswordResetToken(username); 
// create a link with this token and send email 

// link directed to an action with form to capture password 
WebSecurity.ResetPassword(token, password); 

http://msdn.microsoft.com/en-us/library/webmatrix.webdata.websecurity.resetpassword(v=vs.111).aspx

+2

고마워요! 그게 잘 작동하는 것 같아요 – Elsimer

+0

나는 당신이 거기에서 한 것을 좋아합니다! ;-) –