MVC3 SSL 问题 - 当不需要 SSL 时,无法从 HTTPS 切换到 HTTP



当用户浏览到不需要的页面(并且他们没有登录)时,我正试图让我的MVC3网站从HTTPS重定向回HTTP。我不想有运行整个网站HTTPS的负载,但看起来这是我必须走的路。

我在远程调试和符号方面遇到了很多麻烦,但回到1985年,并使用等效的消息框进行调试,我得出了以下结论:

if (filterContext.ActionDescriptor
     .GetCustomAttributes(typeof(RequireHttpsAttribute), true)
     .Any()
   )
{
   return true;
}
return false;

总是返回false。

控制器def启动为:

[FilterIP(
    ConfigurationKeyAllowedSingleIPs = "AllowedAdminSingleIPs",
    ConfigurationKeyAllowedMaskedIPs = "AllowedAdminMaskedIPs",
    ConfigurationKeyDeniedSingleIPs = "DeniedAdminSingleIPs",
    ConfigurationKeyDeniedMaskedIPs = "DeniedAdminMaskedIPs"
)]
[RequireHttps]
public class AccountController : Controller
{

它似乎不适用于该控制器中的任何操作(尽管它们确实成功地路由到SSL)。

有什么建议吗?我很想看到一个答案,我认为这是我自己的秘密;)

自定义NotRequireHttpsAttribute教程

我使用上面的链接帖子来实现我的自定义属性,并从https重定向到http。希望这能有所帮助。

我的问题被发现与发布到的服务器上的绑定有关。我们在后台和生产中使用相同的服务器,并且后台https绑定没有设置,所以每当它调用https页面时,它都会解析到我们的生产站点(看起来是一样的,所以很难发现)。

一旦我添加了绑定,它就全部解决了。我的代码还可以…

最新更新