使用 .NET Framework 4.6 时,从 System.Web.HttpRequest.TlsTokenBindingInfo 返回的令牌不正确

应用对象
.NET Framework 4.6.2

症状

假设您有一个运行 Windows 10 的服务器,并且您使用 System.Web.HttpRequest.TlsTokenBindingInfo 获取用户身份。 如果用户由其他服务器重定向到服务器,你还将获取该用户提供给重定向服务器的令牌,作为引用的令牌绑定 ID。 此引用的令牌绑定 ID 可帮助你识别重定向服务器上的用户。 但是,在这种情况下,无法通过用户引用的令牌绑定 ID 在重定向服务器上找到该用户。

原因

出现此问题的原因是 System.Web.HttpRequest.TlsTokenBindingInfo 返回的令牌绑定 ID 包含令牌类型,并且其他一些实现可能会去除令牌类型。

解决方法

要解决此问题,请跳过 ITlsTokenBindingInfo 中字节数组的第一个字节,并将其余字节数组用作用户标识。 

注意:在 .NET Framework 4.6) 之后的.NET Framework (的未来版本中,不必跳过首个字节,因为 API 将来可能会更改,并且它将为您去掉第一个字节。

有关 .NET Framework 4.6 中已知问题的更多信息,请参阅 .NET Framework 4.6 的已知问题

详细信息

有关 .NET Framework 4.6 中的产品版本控制更改及其影响的详细信息,请参阅 .NET Framework 4.6 中的应用程序兼容性