2012-07-27 174 views
0

请帮我 我工作的一个asp.net应用程序中有一个主网站和子网站是这样的:如何防止网站访问其他网站文件夹?

site.com/parent

site.com/parent/child1

site.com/parent/child2

在父网站的任何页面都可以访问到child1和的child2文件,复制,删除它们

,但问题是:child1也可以接入到CHILD2 FIL es和复制,删除它们!

我想阻止child1网站来访问的child2文件

我使用asp.net和IIS 7.5

请帮助!

回答

2

设置具有不同安全性的站点,然后阻止对文件夹的访问。这将取决于您当前正在使用哪种类型的身份验证,但让我们假设它是匿名访问。

假设child1和的child2是虚拟目录:

创建您将分配给child1和不同的用户,您将分配给CHILD2用户。

在IIS中,转到child1 >>身份验证。编辑匿名>>更改为child1的用户。

转到child2 >>认证。编辑匿名>>更改为child2的用户。

如果您不使用匿名访问,您可以为您使用的身份验证类型执行与上面类似的操作。 (如果您使用的是SSPI,请不要忘记您的数据库)

转到child1的文件和/或文件夹,并将ACL更改为阻止child2用户。转到child2的文件和/或文件夹并更改ACL以阻止child1用户。

编辑:

还记得更改ACL来允许对文件/文件夹的相应用户。因此,对于child1的文件/文件夹,添加允许读取,写入child1用户等等。

如果你在共享主机,我希望他们将允许你改变文件的安全性。

您也可以在web.config中配置认证属性。例如,对于匿名身份验证:

http://msdn.microsoft.com/en-us/library/ms689465%28v=vs.90%29.aspx

+0

我只有一个asp.net共享托管! 有没有办法做到这些步骤programaticaly或web.config文件? 谢谢Mr.Marnee :) [我是新手,我无法评估您的答案!] – xDeveloper 2012-07-27 20:36:23

+0

您可以在每个孩子的web.config中更改匿名身份验证设置(Blam先生是正确的)。 http://msdn.microsoft.com/en-us/library/ms689465%28v=vs.90%29。aspx – Marnee 2012-07-27 21:49:54

+0

我编辑了我的答案。 – Marnee 2012-07-27 21:50:34