Обычно вы можете просто использовать WebSecurity.currentUserId
, но если вы находитесь в AccountController сразу после создания учетной записи и хотите использовать идентификатор пользователя, чтобы связать пользователя с некоторыми данными в других таблицах, тогда WebSecurity.currentUserId
(и все решения выше), к сожалению, в этом случае возвращает -1, поэтому он не работает.
К счастью, в этом случае у вас под рукой есть контекст db для таблицы UserProfiles, поэтому вы можете получить идентификатор пользователя следующим образом:
UserProfile profile = db.UserProfiles.Where(
u => u.UserName.Equals(model.UserName)
).SingleOrDefault();
Я недавно сталкивался с этим случаем, и этот ответ сэкономил бы мне кучу времени, так что просто поместил его там.