我尝试在我的抽象基控制器构造函数中访问标识当前用户,以使用该链接在视图中显示用户(如果它已登录)。
所以,我得到了User
财产是null
.每个人都建议使用过滤器并通过视图数据返回用户。这里的示例:"为什么 User(如 User.Identity.Name 中)在我的抽象基本控制器中为 null?
我尝试做这样的想法,但面对问题:AuthorizationContext
没有成员Controller
!
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class UserAuthorizationAttribute : Attribute, IAuthorizationFilter
{
public void OnAuthorization(Microsoft.AspNet.Mvc.Filters.AuthorizationContext filterContext)
{
filterContext.Controller.ViewData["IdentityUser"] = filterContext.HttpContext.User;
}
}
所以,我有两个问题:
- 有没有办法将数据从过滤器发送到控制器?
- 也许还有其他方法可以获得不为空的用户?
您可以尝试使用操作过滤器,而不是授权过滤器。 这些将在管道中稍后处理,并有权访问用户。