gpt4 book ai didi

asp.net - 生成文件,然后启动安全下载

转载 作者:行者123 更新时间:2023-12-02 04:46:17 26 4
gpt4 key购买 nike

在 asp.net 2.0 (VB) 环境中工作,我已经有了可以从数据库为网站的特定“用户”生成 Excel 文件的代码。我希望能够按需启动此报告生成器,然后在生成文件后,允许用户下载此文件。

如何安全地执行此操作,而不只是将文件转储到某个公共(public)可读目录中?

注意:与 this question 相关,但我真正感兴趣的部分从未得到解答。

最佳答案

您可以创建一个允许您进行授权的 HTTP 处理程序,而不是将其放在公共(public)目录中。

您可以通过在 web.config 中编译和注册或创建 ashx 页面来创建处理程序。然后您的页面将授权用户,然后将内容写入响应。

如果您需要 session 状态,请确保继承自 IRequiresSessionState。

编辑

我是一名 C# 人员,所以这里有一个示例:

public class DownloadFile : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{

public void ProcessRequest (HttpContext context) {
//Validate user is authenticiated and authorized.
if (context.Request.IsAuthenticated)
{
//This is your own custom authorization mechanism
if (AuthorizeUser(context.Request.User))
{
//not sure what the correct content type is. This is probally wrong
context.Response.ContentType = "application/xls";
//Setting size is optional
context.Response.AddHeader("Content-Disposition",
"attachment; filename=" + downloadName + "; size=" + myExcellFile.Length.ToString());
context.Response.BinaryWrite(myExcellFile);


}

}

关于asp.net - 生成文件,然后启动安全下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/725625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com