防止.NET Core 2.2中的浏览器缓存形式值



asp.net core 2.2 MVC Web应用程序

我有多种表格,当用户返回页面时,我不希望浏览器缓存/显示任何先前输入的数据。我希望元素/表单不缓存任何信息。我不仅希望浏览器不 show 先前输入的信息,我希望它不会出于安全原因而被缓存。

我尝试用以下方式装饰控制器方法:

[ResponseCache(NoStore = true, Location = ResponseCacheLocation.None)]

无济于事,当我再次导航到页面/表单并开始键入时,先前输入的值继续显示为自动完成选项。

我也尝试过所有细微差别:ASP.NET Core

中的响应缓存中间件

如今,这是如何完成所有浏览器的?

听起来像是由浏览器的自动完成功能引起的:

默认情况下,浏览器记住用户通过网站上的字段提交的信息。这使浏览器能够提供自动完成(也就是说,建议用户开始输入的字段可能完成(或自动填充(也就是说,在加载时预先填充某些字段(。

为表格禁用此功能:

<form autocomplete="off">
    ... 
</form>

或禁用一个字段:

<input ... autocomplete="off">

这是off

的详细说明

" OFF"关键字表明控件的输入数据特别敏感(例如,核武器的激活代码(;或者这是一个永远不会重复使用的值(例如,银行登录的一次性键(,因此用户将必须每次明确输入数据,而不是能够依靠用户代理到预填充他的价值;或该文档提供了自己的自动完成机制,并且不希望用户代理提供自动完成值。

有关更多详细信息,请参阅如何在mdn和w3c.org上禁用自动完成

希望它有帮助。

您可以将autocomplete =" off"用于HTML元素,但Chrome可以防止此名称,例如"名称","地址"等。

早些时候讨论了这个话题。Chrome忽略autocomplete =&quot'

相关内容

  • 没有找到相关文章

最新更新