我正在开发一个ASP.NET MVC 4 Web 应用程序。创建用户和帐户后(使用 WebSecurity.CreateUserAndAccount),我想继续与该用户合作,例如将他用作其他模型中的外键。
一种方法是为 UserProfile 提供自定义 UserId,并使用此 UserId 来查询用户。例如:
...
try
{
int CustomUserId = Rnd.Next(1000000, 9999999);
WebSecurity.CreateUserAndAccount(RegisterModel.UserName, RegisterModel.Passwordword,
propertyValues: new { UserId = CustomUserId });
WebSecurity.Login(UserName, Password);
var UserProfile = (from UserProf in _db.UserProfiles
where UserProf.UserId == CustomUserId
select UserProf).FirstOrDefault();
CustomModel cm = new CustomModel();
cm.User = UserProfile;
//Add cm to database an so on...
return RedirectToAction("Index", "Home");
}
catch (MembershipCreateUserException e)
{
//Bla...
}
...
在我看来,这很不优雅。特别是因为我自己维护了 UserId。有没有更优雅的方法来解决这个问题?