Использование параметра Page.User.Identity.Name в MVC3

В MVC2 я использовал Page.User.Identity.Name с помощью <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

Как я могу использовать то же самое в MVC3?

Ответ 1

Вы всегда можете сделать что-то вроде:

@Html.ViewContext.HttpContext.User.Identity.Name

но не.

Обычно представление не должно пытаться извлечь такую ​​информацию. Он должен отображать любую информацию, передаваемую контроллером. Он должен быть строго типизирован для класса модели, который передается действием контроллера.

Итак, в действии контроллера, отображающем это представление:

[Authorize]
public ActionResult Index()
{
    var model = new MyViewModel
    {
        Username = User.Identity.Name
    }
    return View(model);
}

Теперь в представлении не стесняйтесь использовать эту информацию:

@Model.Username

Ответ 2

MVC 2

<%: this.Page.User.Identity.Name %>

MVC 3

@this.User.Identity.Name

Ответ 3

У меня была та же проблема. Я использовал этот учебник, чтобы решить эту проблему.

Короче говоря, на ваш взгляд, поставьте этот код:

@Context.User.Identity.Name

Просто убедитесь, что проект настроен на проверку подлинности с помощью окон.