我正在使用nameContextElementPreUnbound(NameContextBindingEvent pEvent)方法在会话到期之前触发,以便我们可以在会话过期之前保存会话详细信息。
我的方法在设置会话超时后被触发,但我无法从事件中获取配置文件。我尝试使用NucleusNameResolver来获取atg.userprofiling.Profile组件,但每次都会获得一个null配置文件。可能它会提取一个新的配置文件组件,而不是我登录的配置文件。
请提供一些从事件中获取配置文件的方法(NameContextBindingEvent)。
答案 0 :(得分:0)
ATG有backing up the session的内置组件,但假设您确实需要session expiry event,此事件已经内置,可以通过配置启用。当此事件触发时,将发送包含对用户配置文件的引用的DMS消息。
要自定义,您需要执行以下操作:
SessionEventTriggers
组件上已启用/atg/dynamo/servlet/dafpipeline/SessionEventTrigger
。 EndSession
事件的消息接收器。请记住,用户配置文件也可能是暂时的,即用户实际上并未登录,因此您可能需要逻辑来处理此问题。还记得许多会话可以是非用户,例如像Googlebot这样的机器人在保存会话时要小心。