【发布时间】:2018-03-06 04:24:08
【问题描述】:
在我们的网站(MVC Razor,C#)上,我们有一个带有密码重置功能的登录页面。这会向用户发送一封带有重置链接的电子邮件。当他们单击此按钮时,他们会进入一个页面,在该页面中输入他们的电子邮件地址、新密码和密码确认。我们遇到的问题是 Chrome 提供使用他们的电子邮件地址记住他们的登录详细信息。但是,这是无效的,因为用户使用用户名和密码登录,而不是他们的电子邮件。
在用户可以编辑其个人信息的网站的另一个页面上,我们也有可以更新密码的字段。有了这个,我们在第一个密码字段之前添加了一个 input[type=text] 字段,其中包含他们的用户名。这是通过 css 向左移动的。当用户点击保存时,浏览器将提供更新他们的登录信息,这次使用正确的详细信息(用户名和密码)。在添加偏移字段之前,它会记住用户地址中的最后一行以及密码。
虽然这种偏移用户名字段方法也适用于我们在 Firefox 中的密码重置页面,但它不适用于 Chrome。 Chrome 似乎区分了编辑数据的页面和创建新信息的页面。在用户编辑其数据的页面上,Chrome 提供了更新他们的登录详细信息。然而,在我们的密码重置页面上,它总是询问用户是否要保存此信息。在测试中,我删除了偏移用户名字段的 css,使其再次可见。如果我将用户名字段与预先填充的数据一起保存并保存,则没有任何区别。然而,当我手动编辑数据,重新输入已经存在的数据时,Chrome 提供保存正确的信息(用户名和密码)。
所以我尝试了两件事: 1. 添加Javascript逻辑,尝试模拟手动编辑的字段。我使用 jQuery 并尝试调用 keypress()、keydown() 和 change() 的组合。 2. 添加向左偏移的包含预填充数据的字段,以便 Chrome 可能认为这是一个正在“编辑”的页面。
这两种方法都不起作用。如果有人有任何想法或建议,我们将不胜感激。
【问题讨论】:
标签: javascript jquery html asp.net-mvc google-chrome