在AspNetCore 3.1中,可以通过使用特性或配置来排除端点,使其不需要身份验证/授权。
[AllowAnonymous]
特性来排除身份验证/授权要求。例如:[AllowAnonymous]
public IActionResult PublicEndpoint()
{
// 处理公开的请求
return View();
}
Startup.cs
文件的ConfigureServices
方法中配置身份验证/授权服务,并使用AddAuthorization
方法来定义策略。然后,在Configure
方法中使用UseEndpoints
方法来配置端点,并使用RequireAuthorization
方法来指定需要授权的端点。例如:public void ConfigureServices(IServiceCollection services)
{
// 配置身份验证/授权服务
services.AddAuthentication()
.AddJwtBearer(options =>
{
// 配置身份验证选项
});
services.AddAuthorization(options =>
{
options.AddPolicy("RequireAuth", policy =>
{
policy.RequireAuthenticatedUser();
});
});
// 其他服务配置
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 其他中间件配置
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers().RequireAuthorization("RequireAuth");
});
}
通过以上配置,所有的控制器和操作方法都需要身份验证/授权,如果想要排除某个端点,可以在UseEndpoints
方法中使用AllowAnonymousToPage
或AllowAnonymousToFolder
方法来排除指定的页面或文件夹。例如:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers().RequireAuthorization("RequireAuth");
endpoints.MapRazorPages().AllowAnonymousToPage("/PublicPage");
});
以上是在AspNetCore 3.1中排除端点不需要身份验证/授权的方法。对于更详细的信息和腾讯云相关产品和产品介绍链接地址,建议参考腾讯云的官方文档或咨询腾讯云的技术支持团队。
领取专属 10元无门槛券
手把手带您无忧上云