在MVC3中使用Page.User.Identity.Name

时间:2011-01-06 10:37:01

标签: asp.net-mvc-3

在MVC2中,我使用Page.User.Identity.Name

使用了<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>

我如何在MVC3中使用它?

3 个答案:

答案 0 :(得分:28)

您可以随时执行以下操作:

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

但不要。

通常情况下,视图不应尝试获取此类信息。它可以显示控制器传递的任何信息。它应该强类型化为由控制器操作传递的模型类。

因此在渲染此视图的控制器操作中:

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

现在在视图内部随意使用此信息:

@Model.Username

答案 1 :(得分:11)

MVC 2

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

MVC 3

@this.User.Identity.Name

答案 2 :(得分:1)

我遇到了同样的问题。我用this tutorial来解决这个问题。

简而言之,在您看来,请输入以下代码:

@Context.User.Identity.Name

只需确保将项目设置为使用Windows进行身份验证。