如何将当前登录用户的电子邮件地址获取到ASP.NET c#中的视图?

时间:2016-09-26 02:38:11

标签: c# asp.net-mvc entity-framework

我根据mvc使用c#开发asp.net应用程序。在那里,我创建了一个用户配置文件,可以编辑或停用当前登录的用户。在我的用户个人资料视图中,我有一个电子邮件字段。因此,我需要将当前登录用户的电子邮件地址获取到View文件中的该字段(输入标记)。如何将当前登录用户的电子邮件地址转换为View文件?我使用了身份模型。

5 个答案:

答案 0 :(得分:2)

这取决于您的代码,您使用电子邮件登录还是用户名? 如果您正在使用该电子邮件,请调用User.Identity.Name以获取它。

如果您使用的是用户名,则使用相同的行获取用户名,然后调用UserManager类以使用用户名获取User对象,然后使用email属性UserManager.FindById(User.Identity.Name);

将电子邮件放入ViewBag,例如:ViewBag.Email = user.Email。

在视图@ ViewBag.Email

中读取该值

答案 1 :(得分:1)

从MVC 5开始,这就是基于此SO question

的方法
var user = UserManager.FindById(User.Identity.GetUserId());
var email = user.Email;

答案 2 :(得分:0)

User.Identity.GetUserName();将为您提供当前登录用户的电子邮件地址。您应该检查默认的MVC模板以获得更多帮助。

答案 3 :(得分:0)

如果您真的使用身份模型,请在视图中调用它:                           @ User.Identity.GetUserName()

答案 4 :(得分:0)

如果您的ApplicationUser中有“电子邮件”的归档文件,则可以访问它而无需查询索赔,例如在控制器中,您可以:

this.User.GetClaimValue("email")