【发布时间】:2017-04-13 02:56:10
【问题描述】:
我正在编写一个自定义 .Net 应用程序,该应用程序利用声明来保证安全性,因为我们跨越了许多边界 - Web、API、批处理等等。在开发过程中,有时我会在通过 Chrome 登录时在系统中创建一些东西,然后我会通过 Edge 中的另一个帐户去测试新创建的项目,不知何故 HttpContext.Current.User.Identity 对应于我的 Chrome 会话。我确实在幕后设置了Thread.CurrentPrincipal,但我的理解一直是所有进入 IIS 的请求都会产生一个新线程,所以我无法弄清楚为什么 Edge 请求会像 Chrome 请求一样被处理。
是否有可能因为 Visual Studio 处于调试模式而共享此信息?
【问题讨论】:
-
"...对 IIS 的请求会产生一个新线程..." - 很可能该请求将进入下一个可用线程池线程。因此,随着时间的推移,线程 ID 不会是唯一的
-
@rubyhaus 实际上你关心的是什么,我假设当 chrome 中有同一个用户的请求时,你不想在其他浏览器中允许他,这是你想要实现的吗?
标签: c# asp.net claims-based-identity httpcontext