我在我的启动课的ConfigureServices中工作。我想运行IsInRole() (据我所知就是这个方法)来填充一个操作:
但是,运行:
System.Security.Principal.IPrincipal.IsInRole("BRV_Projects_Edit");显然是不成功的,因为这引用了一个接口,而不是实现该接口的实例。
我的问题是,在ConfigureService的上下文中,我在定义自定义属性时,如何访问(inject?)当前用户的主体。
发布于 2019-02-01 00:18:54
根据上面的反馈,在管道中的这一点上,User.InRole是不可访问的,但是可以通过创建一个ActionFilterAttribute来访问。
除了与.net核心相关的更改之外,ActionFilterAttribute提供的OnActionExecuting、Get User Name on Action Filter与本文极其相似
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.Controller is Controller controller)
{
controller.ViewBag.CanEdit = filterContext.HttpContext.User.IsInRole("group1");https://stackoverflow.com/questions/54464326
复制相似问题