我正在为Windows SSPI API开发一个.Net包装器。多个API函数返回到期时间,例如,用于凭证或安全上下文到期。
到期时间存储在64位结构TimeStamp中,该结构存储自1601 00:00 00 UTC以来的100纳秒刻度数。
当我调用AcquireCredentialsHandle时,返回的TimeStamp
的原始值很大 - 通常是0x7fffff154e84ffff
之类的值,例如HighPart = 0x7fffff15
和{{1} }}。当转换为实时时,该值在30848年的某个地方。
有谁知道为什么价值如此令人难以置信地高?
它看起来很可疑,因为它非常接近溢出有符号整数。我查看了文档以查看该值是否用于存储标志或其他结构化数据之类的内容,但我无法找到任何内容。
API的其他部分有时会返回相似的值,有时会返回指示未来5分钟的值。
我应该提一下,我正在将这个API与Negotiate包一起使用,由于我的工作站不属于域名,因此可能会变成NTLM包。
答案 0 :(得分:1)
你在纽约,目前在UTC-4:00。确切地说,该值与最大可能值相关。您只需获得一个“永不过期”的值,并根据您的时区偏移进行调整。 - 汉斯帕斯特