Ich arbeite an einer ASP.NET MVC 4 Webanwendung. Nach dem Erstellen eines Benutzers und eines Kontos (mit WebSecurity.CreateUserAndAccount) möchte ich mit diesem Benutzer weiterarbeiten, z. um ihn als Fremdschlüssel in einem anderen Modell zu verwenden.WebSecurity.CreateUserAndAccount erhalten Verweis auf den erstellten Benutzer
Ein Ansatz wäre, dem UserProfile eine benutzerdefinierte UserId zu geben und diese UserId für die Abfrage des Benutzers zu verwenden. Zum Beispiel:
...
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...
}
...
Dies scheint mir ziemlich unelegant. Vor allem, weil ich die UserId selbst gewartet habe. Gibt es einen eleganteren Weg, um dieses Problem zu lösen?