Asp.net core 如何在ASP.NET Core 3.x中保护静态页面不被提供给未经身份验证的用户?
我有一个ASP.NET 3.1 web应用程序。我还有一个从帮助和手动文档系统创建的web帮助文档系统。这些帮助文件包括html、JavaScript、图像文件以及一些可能的视频和PDF文件。web帮助系统是在Visual Studio之外创建的项目。通常,我会使用子域,但我想我可以将其部署到主web应用程序中的文件夹中,以便利用ASP.NET标识进行身份验证和授权Asp.net core 如何在ASP.NET Core 3.x中保护静态页面不被提供给未经身份验证的用户?,asp.net-core,asp.net-identity,Asp.net Core,Asp.net Identity,我有一个ASP.NET 3.1 web应用程序。我还有一个从帮助和手动文档系统创建的web帮助文档系统。这些帮助文件包括html、JavaScript、图像文件以及一些可能的视频和PDF文件。web帮助系统是在Visual Studio之外创建的项目。通常,我会使用子域,但我想我可以将其部署到主web应用程序中的文件夹中,以便利用ASP.NET标识进行身份验证和授权 我需要保护所有这些资产不受未经验证的用户的影响,因为有专有数据,但我不确定如何做到这一点。希望有一个简单而优雅的解决方案。我认为您
我需要保护所有这些资产不受未经验证的用户的影响,因为有专有数据,但我不确定如何做到这一点。希望有一个简单而优雅的解决方案。我认为您可以通过编写一个操作,然后向该操作添加属性来获取这些文件。这是我的一个例子。我在wwwroot下有一个json文件,我想让角色为“Admin”的用户访问它
[Authorize(Roles = "Admin")]
public IActionResult GetFiles()
{
var file = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "json.json");
return PhysicalFile(file, "application/octet-stream");
}
关于PhysicalFile方法,您可以检查此链接
看看中间件是如何工作的