2011-06-30 124 views
2

我有一个Windows服务器2008年。我使用IIS7添加几个网站。但所有的网页都可以访问外部文件。例如:如何停止网站目录以外的文件从iis7网站访问

@{ DirectoryInfo di=new DirectoryInfo("c:\\");} 
@foreach (var item in di.GetFiles()) 
{ 
    <div>@item.FullName</div> 
} 

此代码成功枚举文件。我需要配置无法访问外部网站目录。只使用里面的文件和文件夹

如何做到这一点?

回答

0

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

要更改应用程序池的身份(即指定哪些凭据的应用程序池作为运行)

  1. 打开IIS在连接树
  2. 选择应用程序池
  3. 选择应用程序池
  4. 右键单击并选择高级设置。
  5. 查找进程模型/身份。默认可以读取ApplicationPoolIdentity
  6. 点击的价值(如ApplicationPoolIdentity)
  7. 单击右侧显示
  8. 省略号选择一个内置帐户,或者单击自定义帐户
  9. 如果选择自定义帐户,单击设置并指定Windows帐户和密码
  10. 单击确定关闭设置凭据对话框
  11. 单击确定关闭应用程序池标识对话框
  12. 单击确定关闭高级设置搜索gs对话框。
  13. 回收应用程序池。

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

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

感谢您的重播。我尝试着 – ebattulga

0

你是显示并不意味着外部的个人可以在服务器上访问文件,它显示了代码,所有的是,你的服务器上的程序RUNNING可以访问服务器上的文件,这是合理的。

如果要防止程序访问这些文件,请为不是运行该程序的用户的用户添加安全权限,以防止他们访问这些程序。

如果你正在寻找,以确保在使用的.htaccess的目录看(很基本的安全),或者考虑到Alex的解决方案