0

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

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

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

总是返回假。

控制器 def 开始为:

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

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

有什么建议么?我很想看到我认为是我自己的 nuery 的答案;)

4

2 回答 2

0

自定义 NotRequreHttpsAttribute 教程

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

于 2012-08-28T04:16:28.760 回答
0

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

一旦我添加了绑定,它就全部解决了。我的代码没问题...

于 2012-08-30T13:06:48.563 回答