在表单模型中,我曾经通过以下方式获取当前登录用户:

Page.CurrentUser

如何在ASP中获得控制器类中的当前用户。净MVC吗?


当前回答

在IIS管理器的“身份验证”下,禁用: 1)匿名认证 2)表单认证

然后添加以下到你的控制器,以处理测试和服务器部署:

string sUserName = null;
string url = Request.Url.ToString();

if (url.Contains("localhost"))
  sUserName = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
else
  sUserName = User.Identity.Name;

其他回答

HttpContext.Current.User试试。

公共共享财产当前()作为 System.Web.HttpContext System.Web.HttpContext的成员 简介: 获取或设置当前HTTP请求的System.Web.HttpContext对象。 返回值: 当前的System.Web.HttpContext HTTP请求

不管怎样,在ASP中。NET MVC 3你可以使用User来返回当前请求的用户。

在Asp.net Mvc Identity 2中,你可以通过以下方式获取当前用户名:

var username = System.Web.HttpContext.Current.User.Identity.Name;

你可以使用以下代码:

Request.LogonUserIdentity.Name;

如果你在登录页面中,以LoginUser_LoggedIn事件为例,Current.User.Identity.Name将返回一个空值,所以你必须使用yourLoginControlName。用户名属性。

MembershipUser u = Membership.GetUser(LoginUser.UserName);