我在ASP.NET网站上有一个单一目录,需要启用SSL。对于所有其他目录,我不希望启用SSL。

使用IIS,我已经检查了我想要需要SSL的文件夹的需求安全通道(SS)和128位加密复选框。

现在,当用户在“ http://”中键入“安全目录”时,我想自动将其重定向到“ https://”。我尝试了两种方法,并且都失败了。

方法1:将403; 4目录的IIS自定义错误页面更改为指向:“ /intranet2/sslredirect.aspx”的URL。 SSLredirect将它们指向正确的站点。当我这样做时,即使URL是网站的一部分,我也会得到“不能从当前应用程序池中执行指定请求”错误,并且我只有一个应用程序池(而不是DefaultAppPool)。

方法2:在目录中添加一个Web.config,以超过403错误代码。看起来这样:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <system.web>
        <customErrors defaultRedirect="../Default.aspx" mode="On">
            <error statusCode="403" redirect="../SSLRedirect.aspx" />
        </customErrors>
    </system.web>
</configuration>

但是,当我进行此更改时,我总是会在IIS中定义默认的403.4。

有什么建议么?

有帮助吗?

解决方案

方法1:您似乎误以为您只有一个为整个网站配置的应用程序池。您可能有一个用于默认网站,另一个用于您正在使用的虚拟目录。您的选择是:

a)重新配置它,以便您确实只有一个应用程序池

b)将错误页面提供与与生成错误的页面相同的应用池中的目录中。

c)调整注册表以关闭此错误:将ignoreApppoolForCustomErrors设置为1 hklm system currentcontrolset services w3svc parameters中的1个。看 http://blogs.msdn.com/b/rakkimk/archive/2006/09/01/735684.aspx

方法2:仅在ASP.NET处理错误时才使用Web.config中的自定义错误。我相信IIS在这里没有吸引ASP.NET处理引擎,因为SSL检查失败了。因此,这根本无法在这里工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top