[英]ASP.NET core how to use Authentication only for specific routes?
我配置为对我的 asp.net 反应应用程序使用 windows 身份验证。
在 ConfigureServices() 方法上:
services.AddAuthentication(NegotiateDefaults.AuthenticationScheme).AddNegotiate();
services.AddAuthorization(options =>
{
options.FallbackPolicy = options.DefaultPolicy;
});
然后在 configure() 方法上:
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
但是,通过这样做,所有请求都将触发身份验证过程。 我实际上只希望我的 api 路由(在/api/my/resource
中)使用 windows 身份验证是安全的,并且想让整个反应资源文件夹公开(在/any/path/here
中)。
如何配置为仅对以/api
开头的路由使用 windows 身份验证。
我可以通过这样做来实现:
services.AddAuthorization(options =>
{
// don't use default policy
// options.FallbackPolicy = options.DefaultPolicy;
});
然后在需要认证的controller中添加【Authorize】。
[Authorize] // trigger authentication process
[Route("api/[controller]")]
[ApiController]
public class MyController : ControllerBase {}
然后我可以让特定的路由使用身份验证。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.