【发布时间】:2015-02-24 21:15:38
【问题描述】:
我有一些文件保存在SiteFolder/ 中,我需要通过 C# 项目访问这些文件,但我不希望它们通过浏览器在这些路径中列出。我怎样才能做到这一点? IIS 中是否有可以更改的设置?
另外,由于我完全控制了 IIS 用户来访问/读取/写入此目录文件,那么解决方案是什么?
基本上我不希望任何人通过浏览器访问该目录的内容,但应该可以通过 IIS 访问。
提前致谢。
编辑 1:这是不受影响的文件写入功能 -
FileStream file = new FileStream(Server.MapPath("~/SiteFolder/example.txt"), FileMode.Append, FileAccess.Write, FileShare.Write);
using (StreamWriter fileWriter = new StreamWriter(file))
{
fileWriter.WriteLine("Something");
}
此外,由于此代码在 Amazon EC2 上运行,我必须为这些用户提供对文件夹和文件的完全控制权 -
IUSR
MyProjectName
【问题讨论】:
-
这仅解决了浏览器访问部分,但现在写入这些文件的功能也被破坏了。
-
那么你必须展示你的代码。它可能作为请求用户而不是应用程序的服务帐户运行。我提供的链接可能比 URL 重写更正确,因为它处理的是保护对资源的访问,而不是在发出请求时隐藏它们的位置。
-
@Colin 我也是这么想的。 URL 重写可能更倾向于隐藏方法名称/请求参数。你能告诉我你需要什么信息吗?
-
当您说“写入这些文件的功能也损坏了”时,您能否显示“损坏”的代码块并描述使用它的上下文(是否在调用服务,是否在页面控制器中)?另外,是否启用了模拟或如何对用户进行身份验证/授权?