在Identity 2.0中获取当前用户的名称

时间:2015-05-30 20:55:21

标签: c# asp.net asp.net-identity

在我网站的_Layout.cshtml页面上,我只想显示当前用户的名字和姓氏。它存储在AspNetUsers列的Name数据库表中。

任何人都知道如何获取这些数据?

我查看了UserManager课程,我看到了GetEmailGetPhone等方法,但没有得到名字。

3 个答案:

答案 0 :(得分:1)

您可以使用HttpContext.User属性来获取此信息,例如

User.Identity.Name

(或)完全限定名称

HttpContext.Current.User.Identity.Name.

根据您的评论,您正试图从UserName表中获取AspNetUsers字段。

看看下面的帖子

Cutting Edge Store User Data in ASP.NET Identity

Using Asp.Net Identity DataBase first approach

答案 1 :(得分:1)

你能详细说明Name列的来源吗?

向AspNetUsers表添加列的首选方法是在项目中启用迁移,向ApplicationUser类添加新属性,然后添加新迁移并应用它。

通过这样做,当您从UserManager获取用户时,您将可以访问新的Name属性。

答案 2 :(得分:0)

再次阅读您的问题,Name表格中没有名为AspNetUsers的列,有一个UserName列。名字和姓氏不会保存在AspNetUsers表中,除非您已将它们添加进去,在这种情况下,我会创建一个存储过程以从该表中返回数据。

要访问 UserName UserId

使用语句添加以下

  

使用Microsoft.AspNet.Identity;

您现在可以从HttpContext.User.Identity获得更多方法。

var UserName = User.Identity.GetUserName();
var UserId = User.Identity.GetUserId();

由于