首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取ASP.NET Identity 2.0中的当前用户id

获取ASP.NET Identity 2.0中的当前用户id
EN

Stack Overflow用户
提问于 2014-03-25 10:36:20
回答 3查看 126.7K关注 0票数 86

我刚刚切换到使用Identity Framework的新2.0版本。在1.0中,我可以通过使用manager.FindByIdAsync(User.Identity.GetUserId())来获取用户对象。在2.0中似乎不存在GetUserId()方法。

现在,我所能想到的就是使用manager.FindByEmailAsync(User.Identity.Name),它引用了users表中的username字段。在我的应用程序中,它被设置为与电子邮件字段相同。

我可以看到,当有人需要更新他们的电子邮件时,这会导致问题。有没有一种方法可以基于Identity 2.0框架中不变的值(例如id字段)来获取当前登录的用户对象?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-25 14:12:50

GetUserId()IIdentity上的一个扩展方法,它位于Microsoft.AspNet.Identity.IdentityExtensions中。确保已使用using Microsoft.AspNet.Identity;添加了名称空间。

票数 115
EN

Stack Overflow用户

发布于 2015-05-21 02:03:21

以防您像我一样,并且用户实体的Id字段是Int或字符串以外的其他类型,

代码语言:javascript
复制
using Microsoft.AspNet.Identity;

int userId = User.Identity.GetUserId<int>();

会起到作用的

票数 16
EN

Stack Overflow用户

发布于 2019-07-27 13:15:02

我也有同样的问题。我目前使用的是Asp.net Core2.2。我用下面这段代码解决了这个问题。

代码语言:javascript
复制
using Microsoft.AspNetCore.Identity;
var user = await _userManager.FindByEmailAsync(User.Identity.Name);

我希望这对某些人有用。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22624470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档