8

我知道在 ASP.NET MVC 中访问 SSL 页面的简单方法 - 通过[RequireSSL] 属性,但我对执行相反操作的最佳方法有点困惑。

我的网站上的标题栏中有许多链接,其中大多数链接不需要 SSL,我不想仍然使用 SSL。

futures 项目使得使用 自动重定向到 SSL 页面变得非常容易[RequireSSL(Redirect=true)],但似乎并不容易摆脱这种情况并自动重定向回 http。

我错过了什么?

4

3 回答 3

4

你不会错过任何东西;没有开箱即用的功能。您可以通过获取RequireSslAttribute 源并对其进行修改来轻松创建自己的。

于 2009-07-21T17:49:06.790 回答
1

从其他地方的欺骗问题中回答:

如何在 asp.net mvc 中从 https 模式跳到 http 模式。

注意:如果选择使用这种方法,您的身份验证 cookie 将在切换回 HTTP 后通过纯文本发送,并且可能会被其他人窃取和使用。看到这个。换句话说 - 如果您将它用于银行网站,您需要确保切换到 http 会首先将用户注销。

public class DoesNotRequireSSL: ActionFilterAttribute 
    {
        public override void OnActionExecuting(ActionExecutingContext filterContext) 
        {
                var request = filterContext.HttpContext.Request;
                var response = filterContext.HttpContext.Response;

                if (request.IsSecureConnection && !request.IsLocal) 
                {
                string redirectUrl = request.Url.ToString().Replace("https:", "http:");
                response.Redirect(redirectUrl);
                }
                base.OnActionExecuting(filterContext);
        }
    }
于 2009-11-06T04:18:43.767 回答
0

这非常值得一读(特别是要意识到不小心切换回httpfrom的安全隐患https

使用 ASP.NET 的部分 SSL 安全 Web 应用程序- 不是 MVC 特定但相关的安全问题

使用 ASP.NET MVC 的部分 SSL 网站- MVC 友好

总体来说是一个相当复杂的问题。仍然没有找到我想做的所有事情的真正解决方案,但认为这些文章可能对其他人有所帮助。

于 2009-11-06T04:12:40.783 回答