IIS http请求身份验证问题

时间:2009-09-13 14:48:15

标签: c# asp.net .net iis visual-studio-2008

我使用的是VSTS 2008 + C#+。Net 3.5 + IIS 7.0 + ASP.Net。我有两个IIS网站,站点A和站点B.当用户请求URL http://sitea/abc.aspx时,我的ASP.Net代码处理程序将验证用户(使用Forms身份验证),如果authenticiticaiton通过,我将用户重定向到{{ 3}}

我目前的问题是,有些用户会直接访问http://siteb/bcd.aspx以跳过sitea的身份验证过程。这不是我想要的,因为我想确保所有访问http://siteb/bcd.aspx的用户都经过身份验证。

我的问题是,当用户直接访问siteb以跳过身份验证时,解决问题的简单解决方案是什么?

2 个答案:

答案 0 :(得分:1)

我对此的看法......

  • 禁止匿名访问该网站
  • 由于您正在使用表单身份验证,因此请正确设置loginurl。
  • 如果用户直接访问http://sitseb/bcd.aspx,由于不允许匿名访问,系统会将其重定向到相应的登录网址。

如果您需要进一步澄清,请告诉我。

此处提供了类似的解决方案..

Multiple site authentication with asp.net

注意:如果需要,表单身份验证cookie域应设置为“* .yourdomain.com”,以便同一个cookie可以用于该站点。

答案 1 :(得分:1)

在siteb上,您可以限制访问sitea的IP地址。

在IIS管理器中

单击“目录安全性”或“文件安全性”选项卡,然后执行以下操作之一:

在“IP地址和域名限制”部分中,单击“编辑”。

单击“授予访问权限”或“拒绝访问权限”。选择“拒绝访问”时,您将拒绝访问所有计算机和域,除非您专门授予访问权限。当您选择授权访问权限时,您授予对所有计算机和域的访问权限,但您明确拒绝访问的权限除外。

单击“添加”,然后单击“单台计算机”。

单击“DNS查找”按名称搜索计算机或域,而不是按IP地址搜索。

键入计算机的DNS名称。 IIS在当前域上搜索计算机,如果找到,则在IP地址框中输入其IP地址。