FiddlerCore:使用 Session.id 作为唯一标识符是否安全?

FiddlerCore: is it safe to use Session.id as unique identifier?

我正在尝试修复其他人的代码。在原始代码中,他使用 Session.fullUrl 作为 ConcurrentDictionary 的 TKey。一切正常,直到客户端同时发送两个具有完全相同 url 的请求,显然这不是通常的行为,但我无法更改。

所以我对代码做了一些修改,现在我使用一个新的字符串(Session.id.ToString()+Session.fullUrl)作为TKey,代码就可以工作了。但是,由于 url 再也没有使用过,我想知道我是否可以放弃它并仅使用 Session.id 作为 TKey,但我不确定它是否安全 - 如果程序运行时间足够长,是否会有相同 Session.id 的新会话?

Session.id 值使用 Int32 计数器连续分配,只能使用 FiddlerApplication.ResetSessionCounter() 调用重置 - 所以是的,将其用作唯一键相对安全只要您不将此方法作为您自己的自定义的一部分来调用。

"Relative",因为计数器溢出是可能的,并且会被默默地忽略(因为我们内部使用 Interlocked.Increment),但这也可能导致其他意想不到的错误。