如何在iis7中停止从web访问网站目录之外的文件
我有一个 Windows Server 2008。我正在使用 IIS7 添加一些网站。但所有网络都可以访问外部文件。例如:
@{ DirectoryInfo di=new DirectoryInfo("c:\\");}
@foreach (var item in di.GetFiles())
{
<div>@item.FullName</div>
}
此代码成功枚举文件。我需要配置无法访问外部网站目录。只使用内部文件和文件夹
如何做到这一点?
I have a windows server 2008. i'm adding few web site using IIS7 . But all web can access outside file. for example:
@{ DirectoryInfo di=new DirectoryInfo("c:\\");}
@foreach (var item in di.GetFiles())
{
<div>@item.FullName</div>
}
This code enumerate files successfully. I need to configure can't access outside web site directory. Only use inside files and folder
How to do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您显示的代码并不意味着外部人员可以访问您服务器上的文件,它仅显示在您服务器上运行的程序可以访问服务器上有意义的文件。
如果要阻止程序访问这些文件,请为运行要阻止访问这些文件的程序的用户以外的用户添加安全权限。
如果您想保护目录,请查看使用 .htaccess (非常基本的安全性)或考虑 Alex 的解决方案
the code you are showing does not mean that external individuals can access files on your server, all that it shows is that a program RUNNING on your server can access files on the server which make sense.
If you want to prevent a program from accessing those files then add security permissions to them for a user that is not the user that runs the program you want to prevent from accessing them.
If you are looking to secure a directory look at using .htaccess (very basic security) or take into account Alex's solution
您可以创建一个具有有限权限的新用户,并设置为在此用户下运行应用程序池。
更改应用程序池的标识(即指定应用程序池运行的凭据)
您还可以在 web.config 文件中设置身份:
You could create a new user that has limited permissions and set to run app pool under this user.
To change Identity of an AppPool (i.e. Specify what credentials the App Pool is running as)
You can also set identity in the web.config file: