我想在控制器中设置变量,所有操作的共同点。这是代码:
int id = User.Identity.GetUserId<int>();
user = controllerContext.Request.GetOwinContext().GetUserManager<ApplicationUserManager>().FindById(id);
所以,我只想在每个动作之前调用此代码。我该怎么做?我试着把它添加到
protected override void Initialize(HttpControllerContext controllerContext)
{
}
但是用户尚未填写Initialize方法。我该怎么做? 请不要创建ActionFilter,因为我不会为此控制器创建单元测试
答案 0 :(得分:0)
User.Identity将填充OnAuthorization。控制器实例化的过程在授权之前发生。因此,唯一的方法是声明您的控制器属性并将其设置为OnAuthorization(例如通过ActionFilter,例如您上面所写的)。如果你想在控制器初始化的那一刻想要User.Identity,除了重写.NET MVC应用程序请求处理管道......