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'