c# - 如何在 ASP.NET Core 中默认使用不记名 token 保护所有 Controller ?

标签 c# authentication asp.net-core jwt asp.net-identity

我在我的应用程序中添加了一个 JWT 中间件:

app.UseJwtBearerAuthentication(options => { options.AutomaticAuthenticate = true;} )

不,有趣的是它会为所有操作抛出 500 个异常(在以后的版本中应该更改为 401),即使是那些根本不 protected 操作(没有授权属性)。在我看来,这是错误的,但也许我自己做错了什么。

理想情况下,我想要实现的是默认情况下所有操作都受到保护(在以前的 ASP.NET 中有过滤器),如果我想要其他操作,我会将匿名放在我想要公开的或者 Authorize("SomePolicy") 上政策,但我希望如果没有 token ,则根本无法访问 API。如何在新的 ASP.NET 中执行此操作(我知道我可以从具有此属性的某个 Controller 继承,但我希望有更好的方法)?

最佳答案

.Net Core 3 开头它的完成方式有点不同:

app.UseEndpoints(endpoints =>
{
    endpoints
        .MapControllers()
        .RequireAuthorization(); // This will set a default policy that says a user has to be authenticated
});
可以更改默认策略或添加新策略并使用它。
附言请注意,即使方法名称显示“授权”,默认情况下它也只要求用户经过身份验证。不过,可以添加更多策略来扩展验证。

关于c# - 如何在 ASP.NET Core 中默认使用不记名 token 保护所有 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34994846/

相关文章:

c# - .net Core Grpc 客户端无法调用 Greeter 服务

ruby - 如何连接到使用 LDAP 进行身份验证的 HTTP Rest API

c# - 如何在 C#.net 中使用 YOLO 提高物体检测速度

c# - Thread.Abort() 并在 finally 之后延迟

c# - 什么时候并行提高性能

php - 使用 php/apache 中的身份验证脚本保护目录中的文件

java - 带身份验证的 NTAG212 Mifare Ultralight

asp.net-core - 我可以覆盖 ASP.Net Core MVC 中单个 Controller 的默认操作吗

c# - 动态设置每个 Logger 实例的 Nlog 日志级别 ASP.Net Core 2.x

C# iTextSharp PDFReader 始终从 PDF 开头读取