Dotnet Core自定义全局过滤器[AllowAnonymous]标签无效

我按照这篇文章

使用Identity Server 4建立Authorization Server

建立了IdentityServer服务器。

然后直接建了一个Web服务器,我没有使用文中提到的 [Authorize] 标签。自定义了一个认证筛选器。

    public class IdentityFilter : IAuthorizationFilter
    {        public void OnAuthorization(AuthorizationFilterContext context)
        {if (!context.HttpContext.User.Identity.IsAuthenticated)
            {
                Console.WriteLine("need login");
            }        }
    }

 

注册为全局筛选器,在ConfigureServices中添加

            services.AddMvc(option => {
                option.Filters.Add(typeof(IdentityFilter));
            });

 

筛选器可以正常过滤请求,控制台也能根据票据状态输出文字。

然后我新建了一个控制器,给控制器加上 [AllowAnonymous] 属性


    [AllowAnonymous]    public class HomeController : Controller
    {        public IActionResult Index()
        {            return View();
        }
    }


 

感觉按照Framework套路应该这里就可以不用参与认证过滤

但是通过调试发现,这里依旧在输出文字。

 

请问,大神这个是Core和Framework的区别么?还是我的操作有问题?


拉丁的传说
浏览 681回答 0
0回答
打开App,查看更多内容
随时随地看视频慕课网APP