【发布时间】:2009-08-21 17:17:26
【问题描述】:
对于要与用户帐户交互的操作,我想创建一个“TheUser”对象,并在我的控制器上的任何操作完成后立即将该对象添加到“ViewData[“TheUser”]”调用。
如果用户已登录,它将从数据库中获取用户的信息,如果没有,“TheUser”对象将为空。
我尝试在控制器构造函数中访问“User.Identity.Name”,但它不是在调用任何操作之前创建的。
我正在查看自定义授权过滤器,但这些过滤器不允许我创建“TheUser”对象并将其存储在 ViewData 中。
这是我想要完成的一个简短的 sn-p:
[Authorize]
public class HomeController : Controller
{
User TheUser;
public HomeController()
{
TheUser = User.Identity.IsAuthenticated ? UserRepository.GetUser(User.Identity.Name) : null;
ViewData["TheUser"] = TheUser;
}
}
【问题讨论】:
-
这个答案帮助我获得了 MVC3 stackoverflow.com/a/1506311/511438
标签: c# asp.net-mvc authorization