检查所有路由是否经过身份验证 net core 3.1
check if All routes is authentificated netcore 3.1
我需要找到一个开源程序来检查我的 mvc 应用程序 (net core 3.1) 的所有路由是否被授权。
感谢您的帮助
这个问题并不清楚,但我感觉你真正在寻找的是一种确保你不会“不小心”忘记使路由需要身份验证的方法。最好的方法是默认要求在所有地方都进行身份验证,然后专门选择不需要身份验证的路由。
在 ASP.Net Core 中,您可以使用默认授权策略执行此操作:
// Startup.cs - ConfigureServices
services.AddAuthorization(options =>
{
options.DefaultPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
});
现在,任何地方都需要身份验证。
如果您想允许 public 访问某些路由,您将使用特定路由上的属性对其进行配置:
[AllowAnonymous]
public class PublicController : Controller
{
// ...
}
...或针对特定操作:
public class SomeController : Controller
{
[AllowAnonymous]
public IActionResult PublicAction()
{
return View();
}
}
将启动时添加控制器更改为:
services.AddControllers(o =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
o.Filters.Add(new AuthorizeFilter(policy));
});
我需要找到一个开源程序来检查我的 mvc 应用程序 (net core 3.1) 的所有路由是否被授权。
感谢您的帮助
这个问题并不清楚,但我感觉你真正在寻找的是一种确保你不会“不小心”忘记使路由需要身份验证的方法。最好的方法是默认要求在所有地方都进行身份验证,然后专门选择不需要身份验证的路由。
在 ASP.Net Core 中,您可以使用默认授权策略执行此操作:
// Startup.cs - ConfigureServices
services.AddAuthorization(options =>
{
options.DefaultPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
});
现在,任何地方都需要身份验证。
如果您想允许 public 访问某些路由,您将使用特定路由上的属性对其进行配置:
[AllowAnonymous]
public class PublicController : Controller
{
// ...
}
...或针对特定操作:
public class SomeController : Controller
{
[AllowAnonymous]
public IActionResult PublicAction()
{
return View();
}
}
将启动时添加控制器更改为:
services.AddControllers(o =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
o.Filters.Add(new AuthorizeFilter(policy));
});