Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 如何在ASP.NET Core 3.x中保护静态页面不被提供给未经身份验证的用户?_Asp.net Core_Asp.net Identity - Fatal编程技术网

Asp.net core 如何在ASP.NET Core 3.x中保护静态页面不被提供给未经身份验证的用户?

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标识进行身份验证和授权 我需要保护所有这些资产不受未经验证的用户的影响,因为有专有数据,但我不确定如何做到这一点。希望有一个简单而优雅的解决方案。我认为您

我有一个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方法,您可以检查此链接

看看中间件是如何工作的