ASP.net Core2.2MVC网络应用程序
我有许多表单,当用户返回页面时,我不希望浏览器缓存/显示以前输入的任何数据。我希望元素/表单不缓存任何信息。我不想简单地让浏览器不显示以前输入的信息,我希望它不被缓存,因为安全原因。
我尝试用以下方法来装饰控制器方法:
[ResponseCache(NoStore = true, Location = ResponseCacheLocation.None)]没有效果,当我再次导航到页/窗体并开始键入时,以前输入的值一直显示为自动完成选项。
我也试过玩这其中的每一个细微之处:ASP.NET内核中的响应缓存中间件
现在所有的浏览器都是如何做到这一点的?
发布于 2019-05-13 02:40:11
听起来它是由浏览器的自动完成特性引起的:
默认情况下,浏览器记住用户通过网站上的字段提交的信息。这使浏览器能够提供自动完成(即,建议用户已开始键入的字段可能完成)或自动填充(即在加载时预先填充某些字段)。
若要对窗体禁用此功能,请执行以下操作:
<form autocomplete="off">
...
</form>或禁用字段:
<input ... autocomplete="off">下面是关于off的详细说明
"off“关键字表示控件的输入数据特别敏感(例如核武器的激活代码);或者它是一个永远不会被重用的值(例如,银行登录的一次性键),因此用户每次都必须显式地输入数据,而不是依赖用户代理为他预先填充值;或者文档提供了自己的自动完成机制,并且不希望用户代理提供自动完成值。
有关详细信息,请参阅如何禁用MDN上的自动完成和w3c.org
希望能帮上忙。
发布于 2019-05-13 07:56:29
您可以对html元素使用autocomplete="off“,但是对于诸如”名称“、”地址“等名称,铬可以防止这一点。
此前曾讨论过这一专题。Chrome忽略autocomplete=“关闭”
https://stackoverflow.com/questions/56104768
复制相似问题