如何在iis7中停止从web访问网站目录之外的文件

发布于 2024-11-18 07:54:20 字数 288 浏览 0 评论 0原文

我有一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

可可 2024-11-25 07:54:20

您显示的代码并不意味着外部人员可以访问您服务器上的文件,它仅显示在您服务器上运行的程序可以访问服务器上有意义的文件。

如果要阻止程序访问这些文件,请为运行要阻止访问这些文件的程序的用户以外的用户添加安全权限。

如果您想保护目录,请查看使用 .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

故事与诗 2024-11-25 07:54:20

您可以创建一个具有有限权限的新用户,并设置为在此用户下运行应用程序池。

更改应用程序池的标识(即指定应用程序池运行的凭据)

  1. 打开 IIS
  2. 在连接树中选择应用程序池
  3. 选择应用程序池
  4. 右键单击​​并选择高级设置。
  5. 查找流程模型/标识。默认值可能
  6. 为 ApplicationPoolIdentity 单击该值(例如 ApplicationPoolIdentity)
  7. 单击右侧显示的省略号
  8. 选择内置帐户或单击自定义帐户
  9. 如果选择了自定义帐户,请单击设置并指定 Windows 帐户和密码
  10. 单击确定关闭“设置凭据”对话框
  11. 单击“确定”关闭“应用程序池标识”对话框
  12. 单击“确定”关闭“高级设置”对话框。
  13. 回收应用程序池。

您还可以在 web.config 文件中设置身份:

<system.web>
  <identity impersonate="true"
            userName="UserName"
            password="Password"/>
</system.web>

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)

  1. Open IIS
  2. Select Application Pools in the Connections tree
  3. Select the Application Pool
  4. Right Click and select Advance Settings.
  5. Find Process Model / Identity. The default may read ApplicationPoolIdentity
  6. Click to the value (e.g. ApplicationPoolIdentity)
  7. Click the ellipsis that appears to the right
  8. Select a built in account or click custom account
  9. If Custom account was chosen, click Set and specify the Windows account and password
  10. Click OK to close the Set Credentials dialog
  11. Click OK to close the Application Pool Identity dialog
  12. Click OK to close the Advanced Settings dialog.
  13. Recycle the Application Pool.

You can also set identity in the web.config file:

<system.web>
  <identity impersonate="true"
            userName="UserName"
            password="Password"/>
</system.web>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文