需要使用 ASP.NET 的身份验证功能来确保用户已成功登录,并通过 User 属性访问用户信息。该功能需要在 ASP.NET 应用程序中进行配置,并在控制器或视图中使用。以下是一个示例代码:
在应用程序启动文件(如 Global.asax.cs)中添加以下代码:
protected void Application_AuthenticateRequest()
{
if (HttpContext.Current.User != null)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
//通过身份验证,从数据库或其他存储中获取用户信息
//并将其赋值给 User 属性
HttpContext.Current.User = GetUserFromDatabase(HttpContext.Current.User.Identity.Name);
}
}
}
在控制器或视图中,可以使用以下代码获取登录用户的信息:
public ActionResult Index()
{
var currentUser = User.Identity.Name;
var userEmail = User.Identity.GetUserName();
var userId = User.Identity.GetUserId();
//使用获取的用户信息执行其他逻辑
return View();
}
通过这种方式,ASP.NET 控制器的 User 属性就可以正常工作了。