为什么不加载到https?

时间:2012-08-10 20:28:26

标签: asp.net-mvc-3 https requirehttps requiressl

在asp.net mvc 3中,我有一个拥有ssl证书的站点,并且在https中运行得很好。唯一公开的页面是登录页面。无论出于何种原因,它都不会加载到https中。这是我的相关代码(如果我遗漏了某些内容,将会根据要求发布更多内容)。

的web.config

<compilation debug="false" targetFramework="4.0">
<authentication mode="Forms">
    <forms loginUrl="~/Account/LogOn" timeout="2880"  requireSSL="true"/>
</authentication>

的global.asax

public static void RegisterRoutes(RouteCollection routes)
{
 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
 routes.MapRoute(
  "Default", // Route name
  "{controller}/{action}/{id}", // URL with parameters
  new { controller = "Account", action = "LogOn", id = UrlParameter.Optional }
 );
}

帐户控制器

#if !DEBUG
    [RequireHttps]
#endif
public class AccountController : Controller
{
 public ActionResult LogOn()
    {
        return View();
    }
}

登录视图加载时,它不在Https中。我错过了什么?

2 个答案:

答案 0 :(得分:1)

您需要在构建站点时将Build Target设置为Release。您将在Visual Studio中看到一个如下所示的下拉列表,将其更改为Release并重建,然后发布您的站点:

enter image description here

答案 1 :(得分:0)

您需要添加[RequireHttps],所以它看起来像这样:

[RequireHttps]
public ActionResult LogOn()
{
    return View();
}

这会强制它使用Https

修改

也许您需要在Web.Config的{​​{1}}部分添加以下内容:

<system.webServer>