【发布时间】:2013-05-16 07:32:26
【问题描述】:
我们有一个工作队列,用户可以向其中添加工作。添加工作项时,上下文是用户 (HttpContext)。但它是一个后台线程,轮询队列并按顺序逐项执行。
我不能只存储用户,因为当 HttpContext 被释放时,Principal 对象也会被释放
可以在 worker 中运行的代码需要 Principal 对 PrincipalPermissions 等内容是正确的。
此外,生命周期管理 (IoC) 将 HttpContext 用于 InRequest 范围,是否可以使用正确的主体等重新创建 HttpContext。
编辑: 伪造 HttpContext 只是一个很好的生命时间管理功能,我可以解决这个问题。 但是我们的后端代码很大程度上依赖于线程的正确用户主体,因为我们使用它来验证用户是否可以访问系统的该部分。 如果有人可以回答如何存储具有身份、角色和 IsAuthenticated 状态的用户主体,然后在另一个线程上使用它,我会标记为答案
【问题讨论】:
标签: c# asp.net httpcontext userprincipal principalpermission