我正在研究的应用程序只需要用户名来注册,而不需要密码。当用户创建一个“完整”帐户时,我们会让他们输入一个密码。这种功能是否可以在.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;
}
}