Asp.net mvc 5 在MVC 5中显示登录用户的电子邮件

Asp.net mvc 5 在MVC 5中显示登录用户的电子邮件,asp.net-mvc-5,Asp.net Mvc 5,有人能告诉我们如何在视图中显示登录用户的EmailID吗。我使用的是ASP.NET MVC 5标识 问候,, Ram假设您使用用户的电子邮件作为用户名,那么一旦用户已经通过身份验证,您就可以从用户主体标识访问该名称。name @if (Request.IsAuthenticated) { <span>@User.Identity.Name</span> } @if(Request.IsAuthenticated){ @User.Identity.Name }

有人能告诉我们如何在视图中显示登录用户的EmailID吗。我使用的是ASP.NET MVC 5标识

问候,,
Ram

假设您使用用户的电子邮件作为用户名,那么一旦用户已经通过身份验证,您就可以从用户主体
标识访问该名称。name

@if (Request.IsAuthenticated) {

    <span>@User.Identity.Name</span>

}
@if(Request.IsAuthenticated){
@User.Identity.Name
}

这是一个简单的方法。如果您没有使用电子邮件作为用户名,那么您必须使用声明附加该信息,然后您可以使用扩展方法检索该信息。我有相反的问题。我将电子邮件存储为用户名,需要显示登录用户的全名。然后,我必须按照我为您描述的那样做,并且必须为
IIdentity

添加一个自定义的
DisplayName()
扩展名,假设您使用用户的电子邮件作为用户名,那么一旦用户已经通过身份验证,您就可以从用户主体
Identity.name

@if (Request.IsAuthenticated) {

    <span>@User.Identity.Name</span>

}
@if(Request.IsAuthenticated){
@User.Identity.Name
}

这是一个简单的方法。如果您没有使用电子邮件作为用户名,那么您必须使用声明附加该信息,然后您可以使用扩展方法检索该信息。我有相反的问题。我将电子邮件存储为用户名,需要显示登录用户的全名。然后,我必须按照我为您描述的那样做,并且必须为
IIdentity

添加一个自定义的
DisplayName()
扩展
您可以轻松地使用
@inject
功能调用来同时注入
用户管理器
登录管理器
(此功能在.NET Core中提供)

在视图中添加以下内容:

@inject SignInManager<YourUserIdentity> SignInManager
@inject UserManager<YourUserIdentity> UserManager
当需要引用当前登录的用户时,请注意传递
User
对象

在您的情况下,如果您想获得登录的电子邮件地址,可以使用以下技术:

var loggedInUserName = @UserManager.GetUserName(User);

var loggedInEmail = await UserManager.GetEmailAsync(
        UserManager.Users.FirstOrDefault(u => u.UserName == loggedInUserName)
        );
或者把它放在你喜欢的可视包里。
希望这对任何人都很方便:)

您可以轻松使用
@inject
功能调用来注入
用户管理器
签名管理器
(此功能在.NET Core中提供)

在视图中添加以下内容:

@inject SignInManager<YourUserIdentity> SignInManager
@inject UserManager<YourUserIdentity> UserManager
当需要引用当前登录的用户时,请注意传递
User
对象

在您的情况下,如果您想获得登录的电子邮件地址,可以使用以下技术:

var loggedInUserName = @UserManager.GetUserName(User);

var loggedInEmail = await UserManager.GetEmailAsync(
        UserManager.Users.FirstOrDefault(u => u.UserName == loggedInUserName)
        );
或者把它放在你喜欢的可视包里。
希望这对任何人来说都很方便:)

有人能回答我的问题吗?有人能回答我的问题吗??