C# 使网站仅在HTTPS上运行

C# 使网站仅在HTTPS上运行,c#,asp.net,https,web,C#,Asp.net,Https,Web,我在asp.net中构建了一个web应用程序,它在HTTP和HTTPS上运行 我想让它只在HTTPS上运行 任何一个知道会发生什么变化的人 我对此一无所知?在web服务器中,只需将HTTP URL重定向到相应的HTTPS URL即可。请检查您可以在Global.asax.cs文件中添加该代码 protected void Application_BeginRequest() { if (FormsAuthentication.RequireSSL && !Request.Is

我在asp.net中构建了一个web应用程序,它在HTTP和HTTPS上运行

我想让它只在HTTPS上运行

任何一个知道会发生什么变化的人


我对此一无所知?

在web服务器中,只需将HTTP URL重定向到相应的HTTPS URL即可。请检查

您可以在Global.asax.cs文件中添加该代码

protected void Application_BeginRequest()
{
  if (FormsAuthentication.RequireSSL && !Request.IsSecureConnection)
  {
    Response.Redirect(Request.Url.AbsoluteUri.Replace("http://", "https://"));
  }
}

Global.asax.cs
中,只需添加此代码。考虑<代码>请求。本地开发的IsSimult/<代码>。
protected void Application_BeginRequest(object sender, EventArgs e)
{
    HttpContext context = HttpContext.Current;
    if (!context.Request.IsSecureConnection && !context.Request.IsLocal)
    {
        Response.Redirect(context.Request.Url.ToString().Replace("http:", "https:"));
    }
}

阅读更多关于www而非www重定向和:

最简单的方法是在IIS中

在网站下选择“SSL设置”并勾选“需要SSL”复选框,然后单击应用

这种方法的好处是更安全(代码中不存在允许非SSL请求的错误),而且实现起来更容易、更快。缺点是对HTTP URL的请求不会自动重定向,但您没有说明这是一项要求


如果需要,也可以使用IIS URL重写模块实现此功能。

我尝试了此解决方案,效果良好。但如果我添加应用程序_BeginRequest(),我的网页会加载多次。这背后的原因是什么?我尝试了这个解决方案,效果很好。但如果我添加应用程序_BeginRequest(),我的网页会加载多次。这背后的原因是什么?我不明白我的网页多次加载是什么意思。如果您请求http,它将被重定向到https,因此将向服务器发送2个请求。如果您请求https,则响应。重定向不会发生是的,我知道将向服务器发送两个请求。但在这两次请求之后,页面再次加载,但没有进入
应用程序\u BeginRequest
。我尝试创建一个示例网站并添加
应用程序\u BeginRequest
它多次加载页面,不明白为什么?我制作了一个示例网站,效果很好。请,你能和我分享你的代码吗?我已经通过visual studio(文件->新建网站)创建了一个简单的网站,在页面上没有任何控制。刚刚在global.asax中添加了上述代码。我正在本地进行测试,所以删除了
!context.Request.IsLocal
上述代码的条件。当我运行此命令时,控件只在
应用程序中输入一次_BeginRequest
,但网站会加载多次。当网站第一次运行时,它首先加载。然后,加载符号停止并再次开始加载,而无需输入
应用程序\u BeginRequest
。这种情况多次发生。我试图实现这种方法,但在按照链接中提到的进行所有设置后,网站仍然在http上运行,而不是重定向到https。我尝试实现URL重写模块,但在按照链接中提到的进行所有设置后,网站仍然在http上运行,而不是重定向到https@MicrosoftDN在链接中?我没有发布链接。你是否对错误的帖子发表了评论(并投了反对票)?