【发布时间】:2015-12-21 11:59:55
【问题描述】:
我在 asp.net 中构建了一个在 HTTP 和 HTTPS 上运行的 Web 应用程序。
我想让它只在 HTTPS 上运行。
任何知道它会涉及什么变化的机构
我对此一无所知?
【问题讨论】:
我在 asp.net 中构建了一个在 HTTP 和 HTTPS 上运行的 Web 应用程序。
我想让它只在 HTTPS 上运行。
任何知道它会涉及什么变化的机构
我对此一无所知?
【问题讨论】:
在您的网络服务器中,只需将 HTTP 网址重定向到相应的 HTTPS 网址。请查看http://www.jppinto.com/2010/03/automatically-redirect-http-requests-to-https-on-iis7-using-url-rewrite-2-0/
【讨论】:
您可以在 Global.asax.cs 文件中添加该代码
protected void Application_BeginRequest()
{
if (FormsAuthentication.RequireSSL && !Request.IsSecureConnection)
{
Response.Redirect(Request.Url.AbsoluteUri.Replace("http://", "https://"));
}
}
【讨论】:
在Global.asax.cs 中只需添加此代码。考虑 Request.IsLocal 进行本地开发。
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:"));
}
}
【讨论】:
my web page loads multiple times 是什么意思。如果您请求 http,它将被重定向到 https,因此将向服务器发送 2 个请求。如果您请求 https,则不会出现 Response.Redirect
Application_BeginRequest。我尝试创建一个示例网站并添加Application_BeginRequest 它会多次加载页面,不明白为什么?
!context.Request.IsLocal 条件。当我运行它时,控件只输入一次Application_BeginRequest,但网站加载了多次。它在网站第一次运行时首先加载。然后加载符号停止并再次开始加载而不输入Application_BeginRequest。这发生了多次。
最简单的方法是在 IIS 中。
在网站下选择“SSL 设置”并勾选“需要 SSL”复选框并点击应用。
这种方法的好处是更安全(您的代码中不会出现允许非 SSL 请求的错误),并且实施起来更容易、更快捷。缺点是对 HTTP URL 的请求不会被自动重定向,但您没有说明这是一项要求。
如果需要,也可以使用 IIS URL 重写模块来实现。
【讨论】: