我有ASP.NET MVC网络应用程序。
当我在Azure网络应用上上传时,网站有http://
我总是需要它https://
。
我该怎么做?
我知道这可能是一个过于宽泛的问题,但你可以给我一些建议吗?
我在项目中设置了这样的属性
答案 0 :(得分:6)
我需要它是https:// always。
您可以尝试创建URL重写规则以强制执行HTTPS。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<!-- BEGIN rule TAG FOR HTTPS REDIRECT -->
<rule name="Force HTTPS" enabled="true">
<match url="(.*)" ignoreCase="false" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
<!-- END rule TAG FOR HTTPS REDIRECT -->
</rules>
</rewrite>
</system.webServer>
</configuration>
您也可以参考Enforce HTTPS on your app。
答案 1 :(得分:3)
如果您更喜欢通过代码而不是web.config的解决方案,则可以在Global.asax.cs文件中编写以下内容。
protected void Application_BeginRequest() {
// Ensure any request is returned over SSL/TLS in production
if (!Request.IsLocal && !Context.Request.IsSecureConnection) {
var redirect = Context.Request.Url.ToString().ToLower(CultureInfo.CurrentCulture).Replace("http:", "https:");
Response.Redirect(redirect);
}
}