如何在WWW-Authenticate中使用NTLM或Kerberos:Negotiate header
我正在编写.Net中的客户端应用程序,它通过HTTP与服务器通信。
在NTLM和Kerberos授权的情况下,我需要设置不同的请求缓冲选项。
如何确定是否使用NTLM或Kerberos?有可能以某种方式解码'WWW-Authenticate:Negotiate'标题?
没有找到相关结果
已邀请:
4 个回复
梆晨灸碾
如果授权令牌以“YII”开头,则使用Kerberos,但如果它以“TlR”开头,则不使用Kerberos。 例如Kerberos:
不是Kerberos:
死搭胯
那么这肯定是NTLM。如果我看到
那么这肯定是Kerberos。 严格来说,您应该查看标头中的机制列表,以确定该机制是NTLM还是Kerberos。我建议使用现成的ASN.1解码器,或者查看微软的解码示例。您将要查找SPNEGO OID(
),然后查找其中的机制类型序列。序列中的第一个机制对应于响应令牌有效负载,因此您可以查看该OID以确定机制。一些已知的Kerberos OID是:
据我所知,NTLM唯一的OID是(从这个博客引用):
邵酮
撕吠