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

Page.CurrentUser

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


当前回答

用户名:

User.Identity.Name

但如果你只需要获取ID,你可以使用:

using Microsoft.AspNet.Identity;

所以,你可以直接获得用户ID:

User.Identity.GetUserId();

其他回答

我使用:

Membership.GetUser().UserName

我不确定这是否适用于ASP。NET MVC,但它值得一试:)

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

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

HttpContext.Current.User试试。

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

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

如果需要从控制器内部获取用户,请使用controller的user属性。如果你从视图中需要它,我会在ViewData中填充你特别需要的东西,或者你可以只调用User,因为我认为它是ViewPage的一个属性。