Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 告诉web浏览器登录失败,这样它就不会';不要要求记住密码_Http_Browser - Fatal编程技术网

Http 告诉web浏览器登录失败,这样它就不会';不要要求记住密码

Http 告诉web浏览器登录失败,这样它就不会';不要要求记住密码,http,browser,Http,Browser,我正在为一个网站编写一个登录系统,但当用户的登录凭据出错时,浏览器(我尝试了Firefox和Chrome)仍然会询问用户是否要保存密码。我如何告诉浏览器登录失败,以便它知道不要求用户保存错误的凭据 我尝试过发送403和500的HTTP状态码(而不是普通的200),但都不起作用。有没有办法做我想做的事 另外,我不想使用HTTP 401身份验证机制,因为我想使用HTML表单登录,而不是某些浏览器对话框。尝试HTTP 401 unauthorized:“类似于403禁止,但特别适用于可能进行身份验证但

我正在为一个网站编写一个登录系统,但当用户的登录凭据出错时,浏览器(我尝试了Firefox和Chrome)仍然会询问用户是否要保存密码。我如何告诉浏览器登录失败,以便它知道不要求用户保存错误的凭据

我尝试过发送403和500的HTTP状态码(而不是普通的200),但都不起作用。有没有办法做我想做的事


另外,我不想使用HTTP 401身份验证机制,因为我想使用HTML表单登录,而不是某些浏览器对话框。

尝试HTTP 401 unauthorized:“类似于403禁止,但特别适用于可能进行身份验证但已失败或尚未提供身份验证的情况。”(维基百科引用)

编辑:对不起。你的问题读得不够好。

为了确定它是如何工作的(请参见
OnPasswordFormsRendered
),它正在做一些试探来确定这一点。它似乎是这样做的:

  • 用户提交表单
  • 等待页面完成加载
  • 相同的表单是否仍然可见?如果是,则假定表单是由于用户名或密码无效而显示的
  • 当用户登录失败时;它们应该以相同的形式再次呈现。您的“登录失败”屏幕似乎与原始登录屏幕相差太大,浏览器无法看到它们是相同的表单

    HTTP状态代码似乎对保存密码没有影响

    较新版本的Chrome浏览器使用HTTP状态代码。如果状态代码介于400和600之间,则不会提供保存密码的功能


    其他细节在同一个源文件中都有很好的记录和注释。

    Hmm,奇怪的是,我认为Chrome实际上期待一个2XX的响应来显示该对话框。我认为我们应该告诉“浏览器制造商”整洁的IE10及以下版本没有这样的启发。@EricLaw:我很想知道IE是如何做到的;但我似乎在任何地方都找不到它的来源;-)。10.4.2 401未经授权的请求需要用户身份验证。响应必须包括WWW Authenticate标头字段(第14.47节),其中包含适用于请求资源的质询。