如何在Negotiate失败时从Negotiate方法回退到Basic

时间:2011-03-23 12:33:38

标签: http authentication browser basic-authentication negotiate

我有一个web应用程序,它也可以执行kerberos和基本身份验证。我不知道客户端的能力。因此,两个身份验证机制都在401回复中发送。

回复标题将包含

WWW-Authenticate: Negotiate
WWW-Authenticate: Basic realm="MyREALM"

但是,我希望客户只有在协商失败时才能回退到基本身份验证。

我希望流程应该像,

  1. 客户请求
  2. 服务器响应WWW-Authenticate:Negotiate
  3. 客户端重新请求(带有错误的身份验证数据或带有一些标志,指示无法继续)
  4. 服务器响应再次使用WWW-Authenticate:Basic realm =“MYREALM”
  5. 客户端执行基本身份验证。
  6. 我该怎么做?我修改了服务器代码来执行此操作。但是,不在任何域中的浏览器(它应该做基本身份验证)在步骤2之后没有响应。

1 个答案:

答案 0 :(得分:0)

你的浏览器是什么?浏览器必须使用最强的身份验证的具体RFC chapter 4.6命令。我不记得如果浏览器无法获取凭据,应该做什么。