Reputation: 285
I'm developing an asp.net application using c# according to mvc. In there i'm creating a user profile which can be edit or deactivate to the current logged user. In my user profile view i have a field for the email. So that i need to get current logged user's email address to that field (input tag) in View file. How to get the currently logged user's email address to a View file? And I have used Identity model.
Upvotes: 0
Views: 15513
Reputation: 4456
It depends on your code, are you using the email to login or a username? If you are using the email, then call the User.Identity.Name to get it.
If you are using a username, then use the same line to get the username then call the UserManager class to get the User object using the username and then use the email property -
UserManager.FindById(User.Identity.GetUserId());
Put the email in a ViewBag, ex: ViewBag.Email = user.Email.
Read that value in the view @ViewBag.Email
Upvotes: 2
Reputation: 3451
If you have a filed for "email" in your ApplicationUser you can access it without a query getting from claims, eg in controllers you can:
this.User.GetClaimValue("email")
Upvotes: 0
Reputation: 11
If you really use identity model, Just call it in view: @User.Identity.GetUserName()
Upvotes: 0
Reputation: 226
As of MVC 5 this is how you do it based on this SO question:
var user = UserManager.FindById(User.Identity.GetUserId());
var email = user.Email;
Upvotes: 3
Reputation: 2213
User.Identity.GetUserName();
will give you current logged in user's email address.You should check default MVC template for more help.
Upvotes: 0