In MVC2 I have used Page.User.Identity.Name
using the <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
How can I use the same in MVC3?
You can always do something like:
@Html.ViewContext.HttpContext.User.Identity.Name
but don't.
Normally a view shouldn't try to fetch such information. It is there to display whatever information is passed by the controller. It should be strongly typed to a model class which is passed by a controller action.
So in the controller action rendering this view:
[Authorize]
public ActionResult Index()
{
var model = new MyViewModel
{
Username = User.Identity.Name
}
return View(model);
}
Now inside the view feel free to use this information:
@Model.Username
I had the same problem. I used this tutorial to solve this issue.
In short, in your view, put this code:
@Context.User.Identity.Name
Just make sure that the project is set to authenticate with windows.