2011-12-11 76 views
2

我正在研究的應用程序只需要用戶名來註冊,而不需要密碼。當用戶創建一個「完整」帳戶時,我們會讓他們輸入一個密碼。這種功能是否可以在.NET Membership模型中使用,還是需要推出我自己的解決方案?很明顯,我想讓用戶名是唯一的。在MVC 3應用程序中不需要用戶註冊的密碼

謝謝!

回答

2

我創建了一個允許用戶使用他們的Facebook憑證登錄的MVC 3網站時做了類似的事情。如果有新用戶出現並選擇Login with Facebook我只是爲他們創建一個新的acocunt,但不要讓他們輸入密碼。

通常情況下,如果使用標準的.NET會員的東西,你在Register動作做到這一點(除其他事項外):

MembershipCreateStatus createStatus = _membershipService.CreateUser(model.UserName, model.Password, model.Email); 

我已經選做是爲了產生某種隨機密碼(例如,只是生成一個新的GuidToString()它),這樣的:

model.Password = Guid.NewGuid().ToString(); 

現在我們這裏的人都有一個密碼,但世界上沒有人的情況的人都知道它是什麼。這對我的情況並不重要,因爲他們使用Facebook登錄。但是,如果他們想要關閉他們的Facebook連接,他們只需點擊Forgotten Password鏈接,我會生成一個通過電子郵件發送給他們的鏈接,他們可以從中選擇一個新密碼,所以一切都很好。

如果你想知道如何在不知道舊創建一個新的密碼,這是你如何在標準的.NET成員提供這樣做:

public bool ResetPassword(string userName, string newPassword) 
    { 
     try 
     { 
      MembershipUser user = _provider.GetUser(userName, true); 
      // Create a new password and store it for a moment 
      string resetPassword = user.ResetPassword(); 
      // Now set the new password, for which we need that new one we just generated... 
      return user.ChangePassword(resetPassword, newPassword);   
     } 
     catch 
     { 
      return false; 
     } 
    } 
相關問題