从 ASP.NET 5 中的基本控制器构造函数访问身份用户

Access Identity User from base controller constructor in ASP.NET 5

我试图在我的抽象基础控制器构造函数中访问身份当前用户,以使用 link 在用户登录时在视图中显示它。

所以,我得到 User 属性 是 null。每个人都建议通过 ViewData 使用过滤器和 return 用户。此处示例:"Why is User (as in User.Identity.Name) null in my abstract base controller?"

我试过这样做,但遇到问题: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;
    }
}

所以,我有两个问题:

您可以尝试使用操作过滤器而不是授权过滤器。这些将在管道中稍后处理,并可以访问用户。