gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 02:41:46 24 4
gpt4 key购买 nike

我在我的应用程序中添加了一个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com