如何在asp.net C#中从http重定向到https并将其作为网站的默认版本

use*_*331 6 asp.net-mvc windows-server-2008 c#-4.0

如何在asp.net中从http重定向到https c#我现在已经安装了https证书我想让https作为我网站的默认版本iam使用windows server 2008 R2 asp.net C#4.0

Rah*_*thi 15

你在寻找这样的东西: -

if (!Request.IsLocal && !Request.IsSecureConnection)
{
    string sUrl = Request.Url.ToString().Replace("http:", "https:");
    Response.Redirect(sUrl);
}
Run Code Online (Sandbox Code Playgroud)

另请查看此相关论坛.

从以上链接: -

您可以安装URL Rewrite Module,创建重定向规则并将其放入您的web.config文件中

<rule name="http to https" stopProcessing="true">
     <match url=".*" />
     <conditions>
     <add input="{HTTPS}" pattern="off" />
     </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" />
 </rule>
Run Code Online (Sandbox Code Playgroud)


Jos*_*ard 11

比上面提到的更清洁/更简单的方法是使用包中的RequireHttpsAttributeSystem.Web.Mvc.

只需通过将属性添加到FilterConfig.RegisterGlobalFilters()内部调用的方法来注册该属性,Global.asax.cs如下所示:

FilterConfig.cs

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new RequireHttpsAttribute());
    }
}
Run Code Online (Sandbox Code Playgroud)

这将RequireHttps在所有控制器类中注册该属性,如果尚未执行此操作,则强制它重定向到HTTPS.

注意:这仅适用于ASP.NET MVC而不适用于WebAPI.