-1

我有一个网站,其中包含存储在服务器文件夹中的 pdf 文件,我只需要为登录并属于我选择的角色的用户设置对文件夹中此文件的访问权限!感谢您的帮助:) :)

解释情况:文件夹名称是“文件”文件夹中文件的名称是“f.pdf”当我输入这个网址“www.website.com/files/f.pdf”它是打开的pdf文件,假设只打开认证用户??我怎么解决这个问题 ??

4

1 回答 1

2

将文件夹移到根目录之外,或将其放置为受保护的文件夹,例如 App_Data 以防止直接浏览。然后创建一个可以验证用户并提供文件的“处理程序”页面。处理程序中的代码如下所示:

@{
    WebSecurity.RequireAuthenticatedUser();
    var file = Request["file"];
    if(Path.GetFileExtension(file).Equals(".pdf")){
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", "attachment; filename=" + file);
        Response.WriteFile(Server.MapPath("~/App_Data/PDF/" + file);
    }
}

在您的页面中,您只需要提供一个标准链接,但href应该指向处理程序并将文件名添加到查询字符串中:

<a href="~/handler.cshtml?file=myPdf.pdf">Click to download</a>
于 2013-03-07T07:43:13.050 回答