gpt4 book ai didi

asp.net-core - 无法在 asp.net 5 MVC 6 站点中关闭 requirehttps

转载 作者:行者123 更新时间:2023-12-04 22:58:22 25 4
gpt4 key购买 nike

我有一个正在开发的 asp.net 5 MVC 6 站点。我像这样打开需要 HTTPS:

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

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

我没有在 Controller 或 Action 本身上使用 [RequireHttps] 属性。

我已经进入属性并取消选中“启用 SSL”并将 http url 粘贴到“启动 URL”框中。

我已经关闭了 IIS Express 并重新启动了该站点。我做什么似乎并不重要,它会继续尝试重定向到 HTTPS。

IIS Express 或 Kestral 是否可能缓存了我需要删除的内容?
任何人对还有什么可能迫使它使用 HTTPS 有任何建议吗?

最佳答案

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/

如果你看 definition在 301 响应代码中,您将看到浏览器默认会缓存它:

The requested resource has been assigned a new permanent URI and any future references to this resource SHOULD use one of the returned URIs. Clients with link editing capabilities ought to automatically re-link references to the Request-URI to one or more of the new references returned by the server, where possible. This response is cacheable unless indicated otherwise.

The new permanent URI SHOULD be given by the Location field in the response. Unless the request method was HEAD, the entity of the response SHOULD contain a short hypertext note with a hyperlink to the new URI(s).



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

Getting cached redirect to https response

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

关于asp.net-core - 无法在 asp.net 5 MVC 6 站点中关闭 requirehttps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34424729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com