启动类IsInRole .net核心

时间:2019-01-31 15:50:25

标签: c# asp.net-core .net-core

我在Startup类的ConfigureServices内部工作。我想运行IsInRole(),我理解该方法是为了填充Action:

但是,正在运行:

System.Security.Principal.IPrincipal.IsInRole("BRV_Projects_Edit");

显然不是成功的,因为它指的是接口,而不是实现该接口的实例?

我的问题是,在ConfigureService的上下文中,我要定义一个自定义属性,该如何访问(注入?)当前用户的主体。

1 个答案:

答案 0 :(得分:0)

根据User.InRole以上的反馈,目前无法在管道中访问,但可以通过创建ActionFilterAttribute来访问。

ActionFilterAttribute使OnActionExecuting(Get User Name on Action Filter)与本帖子极为相似,除了与.net core相关的更改

    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.Controller is Controller controller)
        {
            controller.ViewBag.CanEdit = filterContext.HttpContext.User.IsInRole("group1");
相关问题