我想在剃刀视图页面中获取当前经过身份验证的用户名,因此我使用
if (User.Identity.IsAuthenticated)
{
<p>Name is @User.Identity.Name</p>
}
但@ User.Identity.Name始终显示用户的ID。
答案 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);