我有一个 WCF 服务,该服务使用自定义身份验证和授权管理器。
每次客户端进行呼叫时,身份验证管理器都会查找邮件头并使用该信息来识别用户。用户创建为IPrincipal
并放入ServiceSecurityContext.Current.AuthorizationContext.Properties["Principal"]
。
我注意到在后续调用中,用户不同,旧用户信息位于Current
上下文中。我的服务被标记为PerCall。我很难理解为什么每次通话都没有清除上下文。
或OperationContext
与SecurityContext
的生命周期不同?
如果有任何关于如何实现上述描述的想法?谢谢你的帮助。