混合 http/https 站点

2024-03-13

到目前为止,我的 https 部署通常涉及使用 https 对整个站点进行简单锁定,并在 Web 服务器上提供 http 到 https 的重定向。

我现在计划拥有一个 ASP.NET MVC 站点(在云上),其中包含 http 和 https 页面。因此,该站点将有 2 个概念(非物理)区域,提供安全和非安全请求。

在配置方面,我已经为 80 和 443 设置了输入端口,并且该站点接受这两个请求。

对于任何前往属于安全区域的操作的调用,有什么方法可以将协议翻转为 https?例如,动作过滤器可以做的事情。

非常感谢。

edit: 请注意,整个想法是避免在表单操作属性上使用绝对 url,因为可移植性问题并且用户不会在浏览器上看到 https:// 保证视觉提示。

P


您可能想看看 Microsoft 的 MVC futures 程序集可以在这里下载。 http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471

它有一个 FilterAttribute、RequireSslFilterAttribute,允许您轻松标记控制器中需要 SSL 的 Action 方法 - 例如

[RequireSsl(Redirect=true)]
public ActionResult LogOn()
{
  return View();
}

可选的重定向参数将导致请求重定向到相同的 URL,但如果需要,则通过 https 而不是 http。

警告:正如丹尼尔指出的那样,当您点击此操作时,如果数据已发布到页面的非安全版本,则可能已经为时已晚 - 它已经可能受到损害,因此在使用此操作时仍然需要小心并确保所有敏感数据均通过 https 发送。 (我刚刚注意到你对丹尼尔的评论,你显然明白这一点,我会在这里为任何偶然发现这一点的人留下警告!)

编辑:正如 Luke 指出的,在 MVC2 中,此属性现在是核心框架的一部分,并被重命名为 [RequireHttps]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

混合 http/https 站点 的相关文章

随机推荐