试图了解AuthorizationContext对象的生命周期

时间:2009-08-31 19:56:26

标签: .net wcf authorization wcf-security claims-based-identity

我有一个简单的授权设置,可以在自定义授权策略(IAuthorizationPolicy)中检查某些已配置的活动目录角色 - 如果拥有这些角色,则添加声明。最重要的是,我有一个ServiceAuthorizationManager的子类,它覆盖了CheckAccessCore。它验证是否拥有在自定义授权策略评估中添加的某些声明,以便确认或拒绝传入的消息。

因此,这些组件的设置在我的服务中运行良好 - 我的问题是在它们被调用时/与它们相关联的对象的生命周期。每次调用服务时都会调用我的子类ServiceAuthorizationManager - 这就是我的预期。但是,我的自定义授权策略也会在每次调用服务时被调用 - 这不是我所期望的。我可以看到每次调用该服务时,都会生成一个新的AuthorizationContext对象。

我认为我的期望基于以下内容: AuthorizationContext将在身份验证发生后创建 - 这不会在每次调用服务时发生,因为客户端在NetTcpBinding上连接,在每个调用的同一代理上连接(我想在传输上使用相同的开放套接字) ),使用带有Windows凭据的传输安全性,以及服务会话实例。

所以,我的整体预期是,只有在创建新会话时,或者旧的AuthorizationContext对象根据其ExpirationTime属性(而不是每次调用服务)都过期时,才会生成AuthorizationContext。

所以,如果有人能告诉我这种情况的实际情况是AuthorizationContext对象的生命周期 - 或者告诉我如何更改服务以使其按照我的预期行事,我会非常感激

对于上下文 - 如果它有任何区别 - 我仍在使用3.0 CLR库。

由于

0 个答案:

没有答案