http和https的不同web.config设置

时间:2011-02-03 12:11:01

标签: asp.net web-config

是否可以将您的asp.net网站的web.config文件配置为对通过HTTPS访问该网站的用户使用不同的设置?

(例如,我需要将https访问的validateRequest属性设置为false,但是对于内部访问(使用http)设置为true ...)

谢谢!

2 个答案:

答案 0 :(得分:1)

出于安全考虑,我建议将内部和外部网站部署在不同的网站上。这意味着您可以在内部使用Windows身份验证并在外部进行身份验证,并更改您需要的任何其他配置设置。这也意味着您可以通过不提供仅供内部用户使用的方法来限制外部恶意攻击者的攻击面。

答案 1 :(得分:0)

在Web.config文件中禁用请求验证:

<system.web>
    <pages validateRequest="false"/>
</system.web>

在Global.asax文件中,为BeginRequest添加一个事件处理程序:

public class Global : HttpApplication
{
    public override Init()
    {
        base.Init();
        BeginRequest += ToggleValidation;
    }

    void ToggleValidation(object sender, EventArgs e)
    {
        if (Request.IsSecureConnection)
            Request.ValidateInput();
    }
}
相关问题