当前位置:  开发笔记 > 后端 > 正文

无法关闭asp.net 5 MVC 6站点中的requirehttps

如何解决《无法关闭asp.net5MVC6站点中的requirehttps》经验,为你挑选了1个好方法。

我有一个我正在研究的asp.net 5 MVC 6网站.我打开需要HTTPS,如下所示:

services.AddMvc(options =>
{
    options.Filters.Add(new RequireHttpsAttribute());
});

它工作得很好,我已经这样做了一段时间.今天我需要关闭它,所以我注释掉了选项过滤器,但它仍然需要HTTPS.

我没有在控制器或操作本身上使用[RequireHttps]属性.

我已进入属性并取消选中"启用SSL"并将"http URL"粘贴到"启动URL"框中.

我关闭了IIS Express并重新启动了该站点.它似乎并不重要,它继续尝试重定向到HTTPS.

IIS Express或Kestral是否可以缓存我需要删除的内容?任何人都有任何建议,还有什么可能迫使它加入HTTPS?



1> Daniel J.G...:

RequireHttpsAttribute实现将永久重定向响应(301)发送回浏览器:

// redirect to HTTPS version of page
filterContext.Result = new RedirectResult(newUrl, permanent: true);

这意味着当您最初启用了属性并请求了http:// localhost:62058 /这样的URL时,服务器将响应:

301 (Moved permanently)
Location: https://localhost:62058/

如果您查看301响应代码的定义,您将看到默认情况下浏览器将缓存它:

已为所请求的资源分配了一个新的永久URI,并且此资源的任何将来的引用应该使用返回的URI之一.具有链接编辑功能的客户端应尽可能自动将对Request-URI的引用重新链接到服务器返回的一个或多个新引用.除非另有说明,否则该响应是可缓存的.

新的永久URI应该由响应中的Location字段给出.除非请求方法是HEAD,否则响应的实体应该包含一个带有指向新URI的超链接的短超文本注释.

删除RequireHttps过滤器后,浏览器仍将使用缓存的响应:

获取缓存重定向到https响应

因此,删除RequireHttps过滤器后您需要做的就是重建并清除浏览器缓存!

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有