C# 在asp.net mvc 2.0中实现自定义用户注册

C# 在asp.net mvc 2.0中实现自定义用户注册,c#,asp.net,asp.net-mvc-2,asp.net-membership,C#,Asp.net,Asp.net Mvc 2,Asp.net Membership,我正在asp.net mvc 2.0中开发一个站点。现在我必须实现自定义用户注册 我正在使用以下代码创建用户 Membership.CreateUser(userName, password); Roles.AddUserToRole(userName, "User"); UserProfile.NewUser.Initialize(userName, true); UserProfile.NewUser.FirstName = firstName; UserProfile.NewUser.La

我正在asp.net mvc 2.0中开发一个站点。现在我必须实现自定义用户注册 我正在使用以下代码创建用户

Membership.CreateUser(userName, password);
Roles.AddUserToRole(userName, "User");
UserProfile.NewUser.Initialize(userName, true);
UserProfile.NewUser.FirstName = firstName;
UserProfile.NewUser.LastName = lastName;
UserProfile.NewUser.Save();
在这里,我可以创建用户,但它无法验证
用户名
副本。根据MVC2.0内置的创建用户功能,它将检查状态。因此,如果出现重复的
用户名
,它将显示错误。
但是在我的例子中,如何验证
用户名的唯一性

会员API为dupe用户名内置了功能,您只需处理它:

try
{
    MembershipUser newUser = Membership.CreateUser(username, password);

}
catch (MembershipCreateUserException e)
{
   if (e.StatusCode == MembershipCreateStatus.DuplicateUserName)
      // Add to ModelState, or handle it however you want
} 
MembershipCreateUserException有一个名为StatusCode的属性,它是所有不同MembershipCreateStatus错误代码的枚举

您应该增强上述代码以适应所有不同的场景,并相应地采取行动


HTH

您使用的是哪一个提供程序?我使用的是sql成员资格提供程序噢,对不起,我使用的是AspNetSqlMembershipProvider.Great。很高兴你把它整理好了。:)