0

Certificate/License/Registration在启动网站之前是否需要使用https

我想在Global.asax文件中使用提到的代码。

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    Response.Redirect("https://" + Request.ServerVariables["HTTP_HOST"] 
+   HttpContext.Current.Request.RawUrl);
}
4

2 回答 2

1

首先,我认为你永远不会到达它,因为它会在Application_BeginRequest你重定向所有请求时一遍又一遍地循环......

如果请求来自非安全连接(http),那么您所追求的可能是重定向,不是吗?

为此,请查看请求是否来自以下连接:

  protected void Application_BeginRequest(object sender, EventArgs e)
  {
     if (!HttpContext.Current.Request.IsSecureConnection)
        Response.Redirect(HttpContext.Current.Request.Url.AbsoluteUri.Replace("http://", "https://"));
  }

其次,HTTPS 协议需要启动并运行,否则会ERR_SSL_PROTOCOL_ERROR抛出错误。

在 Visual Studio 中,您可以轻松地在项目属性中启用 https

在此处输入图像描述

你会得到最不真实的警告

在此处输入图像描述

由于 Visual Studio 生成(在安装时)一个默认的自签名证书。

在生产环境中,您将需要:

  • 如果是内网应用,使用自签名证书即可
  • 在互联网应用程序上,您确实需要购买 SSL 证书,现在它们越来越便宜......

从你的评论中,我自己现在有一些问题......

  • 您了解 HTTPS 对客户端计算机和服务器之间的连接有什么作用吗?
  • 您真的需要两者之间的安全连接吗?
  • 您要保护什么样的数据?
于 2012-04-25T18:27:01.693 回答
0

当您想使用安全 HTTP(使用 HTTPS 协议)时,您说浏览器和服务器之间的流量是加密的。

这意味着您需要服务器上的证书,以便浏览器和服务器可以决定如何加密流量。

这与重定向无关,与您的服务器设置有关。

于 2012-04-25T18:21:52.803 回答