我正在研究的應用程序只需要用戶名來註冊,而不需要密碼。當用戶創建一個「完整」帳戶時,我們會讓他們輸入一個密碼。這種功能是否可以在.NET Membership模型中使用,還是需要推出我自己的解決方案?很明顯,我想讓用戶名是唯一的。在MVC 3應用程序中不需要用戶註冊的密碼
謝謝!
我正在研究的應用程序只需要用戶名來註冊,而不需要密碼。當用戶創建一個「完整」帳戶時,我們會讓他們輸入一個密碼。這種功能是否可以在.NET Membership模型中使用,還是需要推出我自己的解決方案?很明顯,我想讓用戶名是唯一的。在MVC 3應用程序中不需要用戶註冊的密碼
謝謝!
我創建了一個允許用戶使用他們的Facebook憑證登錄的MVC 3網站時做了類似的事情。如果有新用戶出現並選擇Login with Facebook
我只是爲他們創建一個新的acocunt,但不要讓他們輸入密碼。
通常情況下,如果使用標準的.NET會員的東西,你在Register
動作做到這一點(除其他事項外):
MembershipCreateStatus createStatus = _membershipService.CreateUser(model.UserName, model.Password, model.Email);
我已經選做是爲了產生某種隨機密碼(例如,只是生成一個新的Guid
和ToString()
它),這樣的:
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;
}
}