【问题标题】:Impersonate in Tridion 2011 without using core service在 Tridion 2011 中模拟而不使用核心服务
【发布时间】:2012-09-24 22:16:14
【问题描述】:

我正在尝试在 C# TBB 中模拟用户。是否可以知道是谁在 TBB 中发起了组件的发布操作,该组件是组件模板渲染的一部分?

【问题讨论】:

    标签: tridion impersonation


    【解决方案1】:

    在您的 TBB 中,您可以访问 engine.GetSession(),它返回一个 Session 对象,其中包含 User 信息,我确信您可以在您的代码中执行您想要实现的目标。

    了解更多关于您要归档的内容会很有趣。

    【讨论】:

    • 首先感谢约翰提供的信息。有效!我想使用相同的用户 ID 将一些项目推送到发布 Q,该用户 ID 发布了使用 CT 呈现的组件。所以当一些项目通过代码自动推送到 Q 时,我们知道是哪个用户触发了它。
    • engine.GetSession() 包含为其创建会话的用户。在您的情况下(在模板中),它很可能是 SYSTEM 用户。据我了解,Ram 想要“发起发布”的用户......这不是 SYSTEM。
    【解决方案2】:

    如下文所述

    http://yatb.mitza.net/2012/05/publishing-from-template-code-using.html

    一旦您获得当前发布事务,您就可以使用属性.Creator 来获取用户。

    要获取当前发布交易,您可以参考

    http://yatb.mitza.net/2012/05/publishing-from-template-code-using.html

    【讨论】:

    • 我无法通过使用获得当前用户:engine.PublishingContext.RenderContext.ContextItem.Session.User 我认为我会。提供的链接有解决方案。非常感谢拉姆。
    猜你喜欢
    • 2012-11-29
    • 1970-01-01
    • 2012-03-24
    • 2012-04-21
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    相关资源
    最近更新 更多