在剃刀中获取当前用户名

时间:2014-11-12 08:51:59

标签: asp.net-mvc-4 razor

我想在剃刀视图页面中获取当前经过身份验证的用户名,因此我使用

if (User.Identity.IsAuthenticated)
{
      <p>Name is @User.Identity.Name</p>
}

但@ User.Identity.Name始终显示用户的ID。

2 个答案:

答案 0 :(得分:8)

试试这个(MVC):

@{ var userName = System.Web.HttpContext.Current.User.Identity.Name; }

答案 1 :(得分:-1)

在FormsAuthendication中,您必须提供用户名。 我认为您在表单验证中提供用户的ID而不是用户名。

请执行以下代码以创建身份验证。

var authTicket = new FormsAuthenticationTicket(1, **UserName**, DateTime.Now, DateTime.Now.AddMinutes(30), true, Role);
string cookieContents = FormsAuthentication.Encrypt(authTicket);
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, cookieContents)
{
    Expires = authTicket.Expiration,
    Path = FormsAuthentication.FormsCookiePath
};
Response.Cookies.Add(cookie);