Asp.net mvc 5 在MVC 5中显示登录用户的电子邮件
有人能告诉我们如何在视图中显示登录用户的EmailID吗。我使用的是ASP.NET 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 }
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)
);
或者把它放在你喜欢的可视包里。
希望这对任何人来说都很方便:)有人能回答我的问题吗?有人能回答我的问题吗??