首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[RequireHttps]之后的https如何确保使用非https

[RequireHttps]之后的https如何确保使用非https
EN

Stack Overflow用户
提问于 2012-01-25 03:28:24
回答 2查看 3.9K关注 0票数 6

我找到了This Post,它看起来就是我的应用程序所需要的,我的问题是,当不再需要https时,如何恢复到普通的http?它是否会基于没有[RequireHttps]注释的操作来实现这一点?

编辑:我发现了一些关于从https迁移到http (here & here)的帖子。然而,我仍然希望对下面的问题有一个答案。

另外,我还在考虑是否要在新窗口中打开应用程序。https只应用于新窗口,这是一个公平的假设吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-25 03:34:06

ASP.NET MVC的RequireHttps只有一个方向。在过去,我只是创建了我自己的FilterAttribute实现,以允许双向旅行:

EnsureHttpsAttribute

代码语言:javascript
复制
  public class EnsureHttpsAttribute : FilterAttribute, IAuthorizationFilter
  {
    public void OnAuthorization(AuthorizationContext filterContext)
    {
      Verify.NotNull(filterContext, "filterContext");
      Verify.True(filterContext.HttpContext.Request.HttpMethod.Equals("GET", StringComparison.OrdinalIgnoreCase), "filterContext");

      var request = filterContext.HttpContext.Request;
      if (request.Url != null && !request.IsSecureConnection && !request.IsLocal)
        filterContext.Result = new RedirectResult("https://" + request.Url.Host + request.RawUrl);
    }
  }

EnsureHttpAttribute

代码语言:javascript
复制
  public class EnsureHttpAttribute : FilterAttribute, IAuthorizationFilter
  {
    public void OnAuthorization(AuthorizationContext filterContext)
    {
      Verify.NotNull(filterContext, "filterContext");
      Verify.True(filterContext.HttpContext.Request.HttpMethod.Equals("GET", StringComparison.OrdinalIgnoreCase), "filterContext");

      var request = filterContext.HttpContext.Request;
      if (request.Url != null && request.IsSecureConnection)
        filterContext.Result = new RedirectResult("http://" + request.Url.Host + request.RawUrl);
    }
  }

虽然上面的实现检查它是否是一个Local请求,并忽略到RequireHttpsAttribute的切换。

票数 7
EN

Stack Overflow用户

发布于 2012-01-25 03:34:18

我建议你阅读这篇文章:

http://www.codehosting.net/blog/BlogEngine/post/More-fiddling-with-MVC3-and-https.aspx

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8992834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档