我已经设置了一个考虑查询参数的AuthorizationHandler。我已将它添加到startup.cs中,如此:
services.AddMvc(o =>
{
o.Filters.Add(new AuthorizeFilter("Policy"));
});
它在所有情况下都能正确触发,但只有一个。我有默认路由设置:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=default}/{action=Index}/{id?}");
});
如果我请求http://host/default?parameter=1,授权可以正常运行。
如果我请求http://host?parameter=1,它会按预期重定向到http://host/default?parameter=1,但会跳过授权。
我尝试在默认控制器和Index方法中添加[Authorize(Policy =“Policy”)]装饰,但它没有任何改变。
在这种情况下如何进行授权触发?