Gab*_*abe 25 c# asp.net-core asp.net-core-staticfile
我有一组Excel电子表格,我只想在授权用户的ASP.NET 5 webapp中提供这些电子表格.
非常感谢!
Cli*_*t B 26
是的,他们应该进去wwwroot.目前没有内置的方法来保护wwwroot目录.但创建一个中间件模块来完成它是非常简单的.有一个简单的按照教程这里.
如果你不熟悉开发中间件,我发布了一个GitHub项目,它展示了如何通过三个简单的步骤创建中间件.您可以在此处下载该项目.
您不需要控制器来访问静态文件.
在.net核心中创建一个与wwwroot相同级别的专用目录www,并使用以下代码:
public HomeController(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
[Authorize(Roles = "SomeRole")]
public IActionResult Performance()
{
return PhysicalFile(Path.Combine(_hostingEnvironment.ContentRootPath,
"www", "MyStaticFile.pdf"), "application/pdf");
}
Run Code Online (Sandbox Code Playgroud)
基于以下答案(针对.netCore):静态文件授权
小智 6
在检索文件时进行身份验证检查:
app.UseStaticFiles(new StaticFileOptions()
{
OnPrepareResponse = (context) =>
{
if (!context.Context.User.Identity.IsAuthenticated && context.Context.Request.Path.StartsWithSegments("/excelfiles"))
{
throw new Exception("Not authenticated");
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12209 次 |
| 最近记录: |