我在一个月前为我的网站设置了SSL。但是,我从来没有习惯过这个网站。 这些是我的问题:
代码:
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
// Response.ContentEncoding = System.Text.Encoding.Default;
Response.ContentType = "text/html; charset=windows-1254";
if (Request.Url.Scheme == "https")
{
string URL = Request.Url.ToString();
URL = URL.Replace("https://", "http://");
Response.Redirect(URL);
}
}
我的问题是:如何将网站配置为在C#中自动从HTTP重定向到HTTPS?
答案 0 :(得分:2)
检查http
是否重定向到https
:
if(!Request.IsSecureConnection)
{
string redirectUrl = Request.Url.ToString().Replace("http:", "https:");
Response.Redirect(redirectUrl);
}
答案 1 :(得分:0)
在Application_BeginRequest
页面的Global.asax
方法中,检查请求是否为http
。如果是,请将http
替换为https
:
if (!HttpContext.Current.Request.IsSecureConnection)
{
string redirectUrl = HttpContext.Current.Request.Url.ToString().Replace("http:", "https:");
HttpContext.Current.Response.Redirect(redirectUrl);
}
答案 2 :(得分:0)
我个人更喜欢IIS的Url-Rewrite模块: https://www.iis.net/downloads/microsoft/url-rewrite
安装模块后,您可以在web.config中添加重定向:
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="https" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>