管理对 ASP.NET Core 中下载文件和隐藏基础 URL 的访问权限
Manage access to download file and hide base URL in ASP.NET Core
我正在开发一个 ASP.NET 核心项目,我想下载 link 供用户在付款后使用。该文件位于另一台根本不安全的服务器上,我不希望泄露主要地址,因为这样用户就可以访问 link 而无需支付任何费用。我怎样才能使这个 link 安全?
作为您在另一台服务器中的资源。所以我们不能限制我们的用户访问它,如果他们知道 url.
所以我建议你可以在你的后端代码中下载资源文件,等他们完成付款后。
测试后,下载示例文件,无法获取资源url。
测试步骤:
我的示例视频url:
http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
1.通过 services.AddHttpClient();
在 .net core 中添加 HttpClient。并定义您的控制器,如下图所示。
2。可以参考我的测试代码
public async Task<IActionResult> DownloadFile(string fileid)
{
// get model by id from your db
fileModel model = bll.getmodelbyid(fileid);
string url = model.fileid; //"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4";
using (var client = new HttpClient())
{
using (var result = await client.GetAsync(url))
{
if (result.IsSuccessStatusCode)
{
return new FileContentResult(await result.Content.ReadAsByteArrayAsync(), model.mimetype)//"video/mp4")
{
FileDownloadName = Guid.NewGuid() + model.fileextension//".mp4"
};
}
}
}
return null;
}
3。测试结果
我正在开发一个 ASP.NET 核心项目,我想下载 link 供用户在付款后使用。该文件位于另一台根本不安全的服务器上,我不希望泄露主要地址,因为这样用户就可以访问 link 而无需支付任何费用。我怎样才能使这个 link 安全?
作为您在另一台服务器中的资源。所以我们不能限制我们的用户访问它,如果他们知道 url.
所以我建议你可以在你的后端代码中下载资源文件,等他们完成付款后。
测试后,下载示例文件,无法获取资源url。
测试步骤:
我的示例视频url:
http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4
1.通过 services.AddHttpClient();
在 .net core 中添加 HttpClient。并定义您的控制器,如下图所示。
2。可以参考我的测试代码
public async Task<IActionResult> DownloadFile(string fileid)
{
// get model by id from your db
fileModel model = bll.getmodelbyid(fileid);
string url = model.fileid; //"http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4";
using (var client = new HttpClient())
{
using (var result = await client.GetAsync(url))
{
if (result.IsSuccessStatusCode)
{
return new FileContentResult(await result.Content.ReadAsByteArrayAsync(), model.mimetype)//"video/mp4")
{
FileDownloadName = Guid.NewGuid() + model.fileextension//".mp4"
};
}
}
}
return null;
}
3。测试结果