在ASP.NET内核中是否有类似于antmatcher的东西?

问题描述 投票:0回答:1

在Spring Security中,您可以在一个地方定义要授权的端点,例如

http.authorizeRequests()
  .antMatchers("/login").permitAll()
  .antMatchers("/admin/**").access("hasRole('ADMIN')")
  .antMatchers("/**").denyAll();

在.NET中,我可以通过添加带有RequireAuthenticatedUser的AuthorizationPolicy来创建默认的拒绝策略:

      services.AddControllersWithViews(o =>
      {
        var policy = new AuthorizationPolicyBuilder()
          .RequireAuthenticatedUser()
          .Build();
        o.Filters.Add(new AuthorizeFilter(policy));
        o.Filters.Add(new AuthorizeFilter(new AuthorizationPolicyBuilder().AddRequirements(new endpoint))
      });

是否有一种方法可以像在Spring Security中那样以类似于.NET的方式来定义我不希望授权的路径?

asp.net asp.net-mvc asp.net-core authorization
1个回答
0
投票

如果需要禁用特定URL的授权,例如登录页面,则可以在相应的操作上添加[AllowAnonymous]属性。

[Authorize]
public class AccountController : Controller
{
    [AllowAnonymous]
    public ActionResult Login()
    {
    }

    public ActionResult Logout()
    {
    }
}

看这个reference

© www.soinside.com 2019 - 2024. All rights reserved.