【问题标题】:Disable HTTP Access via web.config通过 web.config 禁用 HTTP 访问
【发布时间】:2011-08-16 23:57:35
【问题描述】:

我希望我的用户仅通过 SSL 访问特定的 asp.net 虚拟目录。 web.config 中是否有允许我指定此选项的选项?

【问题讨论】:

    标签: asp.net iis ssl web-config


    【解决方案1】:

    您可以在 IIS7 中执行此操作。转到您的应用程序的 SSL 设置,您将看到带有“需要 SSL”选项的复选框,选中该复选框,您的工作就完成了。现在您的网站只能从 https 访问,而不能从 http 访问。 请记住,您需要拥有 SSL 证书,否则浏览器会为您的网站显示一些警告消息。 而且你..我不认为你可以通过 web.config 实现这一点。

    编辑:示例代码

    可以使用 Global.asax 文件进行完全自定义。您可以添加特定条件并应用 https 或 http。下面的示例代码显示,如果页面是登录/结帐,如果连接不安全,则从 http 重定向到 https,而且我可能不需要 https 作为联系页面。

     protected void Application_BeginRequest(Object sender, EventArgs e)
        {           
                if ((Request.Path.EndsWith("login.aspx") || Request.Path.EndsWith("checkout.aspx") ) && !Request.IsSecureConnection)
                {
                    Response.Redirect(Request.Url.AbsoluteUri.Replace("http:", "https:"));
                }
                else if (Request.IsSecureConnection && !Request.Path.EndsWith("contact.aspx"))              
                {
                    Response.Redirect(Request.Url.AbsoluteUri.Replace("https:", "http:"));
                }
            }
    

    【讨论】:

    • 感谢您的回答,我知道我可以使用 IIS 绑定来执行此操作,但我无权访问它们。
    • 我建议使用 IIS,但由于您没有访问权限,您可以在 web.config 中执行此操作.更多详情forums.asp.net/t/1409637.aspx/1
    • +1 谢谢,我试过了,但这似乎并没有禁用登录页面本身,用户可以登录(不安全)并且在此操作之后,将显示需要 ssl 的错误.是否也可以为登录页面禁用 http,以便用户不会发送未加密的凭据?
    【解决方案2】:

    我做了一个简单的改变来解决它。

    设置 requireSSL="true"

    请参阅我在 web.config 中添加的以下行

     
    <httpCookies httpOnlyCookies="true" requireSSL="true" sameSite="Lax" />
       
       
    

    【讨论】:

      猜你喜欢
      • 2014-08-26
      • 2013-07-07
      • 1970-01-01
      • 2012-05-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-21
      • 2017-05-10
      • 2020-09-30
      相关资源
      最近更新 更多