对于我要与用户账户进行交互的操作,我想在控制器调用任何操作时创建一个“TheUser”对象,并将该对象添加到“ViewData [“TheUser”]”中。
如果用户已登录,则从数据库中获取用户信息,否则,“TheUser”对象将为空。
我尝试在控制器构造函数中访问“User.Identity.Name”,但在调用任何操作之前它并未被创建。
我正在查看自定义授权过滤器,但这些过滤器无法让我创建“TheUser”对象并将其存储在ViewData中。
这是我想要实现的简短片段:
如果用户已登录,则从数据库中获取用户信息,否则,“TheUser”对象将为空。
我尝试在控制器构造函数中访问“User.Identity.Name”,但在调用任何操作之前它并未被创建。
我正在查看自定义授权过滤器,但这些过滤器无法让我创建“TheUser”对象并将其存储在ViewData中。
这是我想要实现的简短片段:
[Authorize]
public class HomeController : Controller
{
User TheUser;
public HomeController()
{
TheUser = User.Identity.IsAuthenticated ? UserRepository.GetUser(User.Identity.Name) : null;
ViewData["TheUser"] = TheUser;
}
}