从 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;
}
}
所以,我有两个问题:
- 有什么方法可以将数据从 Filter 发送到 Controller 吗?
- 也许还有其他方法可以获取非空用户?
您可以尝试使用操作过滤器而不是授权过滤器。这些将在管道中稍后处理,并可以访问用户。
我试图在我的抽象基础控制器构造函数中访问身份当前用户,以使用 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;
}
}
所以,我有两个问题:
- 有什么方法可以将数据从 Filter 发送到 Controller 吗?
- 也许还有其他方法可以获取非空用户?
您可以尝试使用操作过滤器而不是授权过滤器。这些将在管道中稍后处理,并可以访问用户。