APS.NET 核心 5 Web Api - 静态文件、授权和身份验证
APS.NET CORE 5 Web Api - Static files, Authorization and Authentication
我有静态文件夹:
并且我按照 Microsoft 文档来验证授权和身份验证:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-5.0
一切正常,但我的所有请求都返回 401,包括 SignIng 请求。
我的启动文件:
我的控制器没有[授权]。
我需要登录才能接收令牌,以便仅为经过身份验证的用户显示文件。
顺便说一句,我有 JWT 身份验证。
我做错了什么?有帮助吗?
你可以在官方文档中找到说明:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-5.0
在前面的代码中,后备授权策略要求所有用户都经过身份验证。指定自己的授权要求的端点(例如控制器、Razor 页面等)不使用回退授权策略。例如,带有 [AllowAnonymous] 或 [Authorize(PolicyName="MyPolicy")] 的 Razor 页面、控制器或操作方法
RequireAuthenticatedUser 将 DenyAnonymousAuthorizationRequirement 添加到当前实例,强制当前用户通过身份验证。
并且我用代码进行了测试,我们可以看到结果:
并且该文档还提供了一种基于授权提供文件的替代方法:
将它们存储在 wwwroot 和静态文件中间件可访问的任何目录之外。
通过应用授权的操作方法和 return FileResult 对象为他们提供服务:
[Authorize]
public IActionResult BannerImage()
{
var filePath = Path.Combine(
_env.ContentRootPath, "MyStaticFiles", "images", "red-rose.jpg");
return PhysicalFile(filePath, "image/jpeg");
}
我有静态文件夹:
并且我按照 Microsoft 文档来验证授权和身份验证:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-5.0
一切正常,但我的所有请求都返回 401,包括 SignIng 请求。 我的启动文件:
我的控制器没有[授权]。
我需要登录才能接收令牌,以便仅为经过身份验证的用户显示文件。 顺便说一句,我有 JWT 身份验证。
我做错了什么?有帮助吗?
你可以在官方文档中找到说明:
https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-5.0
在前面的代码中,后备授权策略要求所有用户都经过身份验证。指定自己的授权要求的端点(例如控制器、Razor 页面等)不使用回退授权策略。例如,带有 [AllowAnonymous] 或 [Authorize(PolicyName="MyPolicy")] 的 Razor 页面、控制器或操作方法 RequireAuthenticatedUser 将 DenyAnonymousAuthorizationRequirement 添加到当前实例,强制当前用户通过身份验证。
并且我用代码进行了测试,我们可以看到结果:
并且该文档还提供了一种基于授权提供文件的替代方法: 将它们存储在 wwwroot 和静态文件中间件可访问的任何目录之外。 通过应用授权的操作方法和 return FileResult 对象为他们提供服务:
[Authorize]
public IActionResult BannerImage()
{
var filePath = Path.Combine(
_env.ContentRootPath, "MyStaticFiles", "images", "red-rose.jpg");
return PhysicalFile(filePath, "image/jpeg");
}