首先,如果您使用的是 Azure Web 角色而不是 Azure 网站,则应将这些内容存储在 Blob 中。其次,这些文件是否需要安全保护,以便仅经过身份验证的用户可以访问它们(或仅用户可以访问自己的文件?)。
让我们假设任何人都可以从服务器下载任何文件。如果是这种情况,请在 content 下创建名为 UserFiles 的目录。现在,您只需像这样链接到这些文件:
<a href="@Url.Content("~\Content\UserFiles\filename.ext")">MY File title</a>
现在,如果它们被一个认证方案所保护,情况就变得棘手了。你不希望任何人都能下载这些项目。因此,让我们采取一些步骤来保护它们。
1.在你的解决方案顶层创建一个名为UserFiles的文件夹。
2.在你的web.config中,让它不能被任何人访问。
<system.webServer>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="UserFiles"/>
</hiddenSegments>
</requestFiltering>
</security>
3.创建一个MVC控制器,我们称之为“文件”,你实际上将使用它来向用户传递文件。在这里,让我们创建一个名为“下载”的操作,它接受一个文件ID(假设你正在数据库中存储文件信息)。
public FileResult Download(int id){
}
现在,您的文件下载链接将如下所示:
@Html.ActionLink("My File Title", "Download", "Files", new{id = Model.Id})
MVC和您的代码将能够访问UserData文件夹,而外部网络用户则不能。使用控制器/操作来保护您的内容。