http - 仅当协商失败时如何从协商方法回退到基本方法

标签 http authentication browser basic-authentication negotiate

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

回复标题将包含,

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

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

我想要的流程应该是这样的,

  1. 客户要求
  2. 服务器响应 WWW-Authenticate: Negotiate
  3. 客户端重新请求(使用错误的身份验证数据或某些标志表明它无法继续)
  4. 服务器再次响应 WWW-Authenticate: Basic realm="MYREALM"
  5. 客户端进行基本身份验证。

我该怎么做?我修改了服务器代码来执行此操作。但是不在任何域中的浏览器(它应该进行基本身份验证)在步骤 2 之后没有响应。

最佳答案

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

关于http - 仅当协商失败时如何从协商方法回退到基本方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5405295/

相关文章:

browser - 频繁从 socket.io 接收数据时 React 崩溃

http - 我是否应该始终为 Web 应用程序使用反向代理?

ruby - 无法使用 Vagrant 转发端口访问主机上的 Sinatra 应用程序

http - Golang http 服务文件 - 提供并行下载支持 - contentLength 和接受范围不起作用

python - App Engine Python 身份验证自定义重定向

android - 通过 Android 的 AccountManager 类进行 Twitter 身份验证

api - REST API 身份验证 - 这足够吗?

java - 使用页眉和页脚打印 swt 浏览器内容

json - Http API 响应 : List Vs Map

.net - 获取与Webbrowser文档中的XPath表达式匹配的所有元素