Получить текущий идентификатор пользователя в ASP.NET идентичность 2.0
Я только что переключился на использование новой версии 2.0 Identity Framework. В 1.0 я мог бы получить объект пользователя с помощью manager.FindByIdAsync(User.Identity.GetUserId())
. Элемент GetUserId()
метод, кажется, не существует в 2.0.
Теперь все, что я могу придумать-это использовать manager.FindByEmailAsync(User.Identity.Name)
который ссылается на поле username в таблице users. В моем приложении это значение совпадает с полем электронной почты.
Я вижу, что это вызывает проблемы в будущем, когда кому-то нужно обновить свою электронную почту. Есть ли способ, чтобы получить текущий пользователь, вошедший в систему объекта, в зависимости от неменяющихся значений (например, поле id) в рамках Identity 2.0?
3 ответа:
GetUserId()
является методом расширения наIIdentity
и вMicrosoft.AspNet.Identity.IdentityExtensions
. Убедитесь, что вы добавили пространство имен сusing Microsoft.AspNet.Identity;
.
для того, чтобы получить CurrentUserId в Asp.net Identity 2.0, сначала импортируйте
Microsoft.AspNet.Identity
:C#:
using Microsoft.AspNet.Identity;
VB.NET:
Imports Microsoft.AspNet.Identity
А потом позвонитеUser.Identity.GetUserId()
везде, где вы хотите:strCurrentUserId = User.Identity.GetUserId()
этот метод возвращает текущий идентификатор пользователя как определенный тип данных для userid в базе данных (по умолчанию
String
).