如何才允许用户属于角色才能访问文件夹中的文件?

时间:2013-03-07 04:25:02

标签: c# asp.net razor webmatrix

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

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

1 个答案:

答案 0 :(得分: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>