Punya Munasinghe
Punya Munasinghe

Reputation: 285

How to get currently logged user's email address to the View in ASP.NET c#?

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

Answers (5)

Haitham Shaddad
Haitham Shaddad

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

fiorebat
fiorebat

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

zcoleen
zcoleen

Reputation: 11

If you really use identity model, Just call it in view: @User.Identity.GetUserName()

Upvotes: 0

james
james

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

Ravi A.
Ravi A.

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

Related Questions