在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中。我错过了什么?
答案 0 :(得分:1)
您需要在构建站点时将Build Target设置为Release。您将在Visual Studio中看到一个如下所示的下拉列表,将其更改为Release并重建,然后发布您的站点:
答案 1 :(得分:0)
您需要添加[RequireHttps]
,所以它看起来像这样:
[RequireHttps]
public ActionResult LogOn()
{
return View();
}
这会强制它使用Https
。
修改强>
也许您需要在Web.Config
的{{1}}部分添加以下内容:
<system.webServer>