如何在 Tridion 中获取当前登录用户的 tcmid?

2024-04-25

    private void Subscribe()
    {
        EventSystem.Subscribe<User, LoadEventArgs>(GetInfo, EventPhases.Initiated);
    }

    public void GetInfo(User user, LoadEventArgs args, EventPhases phase)
    {
        TcmUri id = user.Id;

        string name = user.Title;
        Console.WriteLine(id.ToString());
        Console.WriteLine(name);

    }

我编写了上面的代码并将程序集添加到 Tridion 服务器的配置文件中,但用户登录时没有出现控制台窗口


您最初订阅的事件是任何可识别对象及其任何操作的处理阶段,基本上会在 SDL Tridion CMS 中发生的每个事务上触发,因此它不会向您提供用户登录时间的任何指示(这基本上是一直发生的一切)。

用户登录后发生的第一件事可能是读取其用户信息和应用程序数据。所以你应该尝试的是:

private void Subscribe()
{
    EventSystem.Subscribe<User, LoadEventArgs>(GetInfo, EventPhases.Initiated);
}

public void GetInfo(User user, LoadEventArgs args, EventPhases phase)
{
    TcmUri id = user.Id;
    string name = user.Title;
}

但请记住,这也会由其他操作触发,例如查看历史记录、检查发布事务等等。我不知道如何区分此操作是用户登录的一部分,因为没有专门为此触发的事件。

您可能想检查是否可以在中找到特定于登录的任何内容LoadEventArgs例如在其ContextVariables, EventStack, FormerLoadState or LoadFlags.

Edit:

请注意,事件系统在 SDL Tridion 核心内部运行,因此您在任何地方都不会看到控制台窗口弹出。如果要记录信息,可以包含以下 using 语句:

using Tridion.Logging;

添加引用后Tridion.Logging.dll您可以在您的..\Tridion\bin\client目录。然后您可以在代码中使用以下日志记录语句:

Logger.Write("message", "name", LoggingCategory.General, TraceEventType.Information); 

您可以在 Tridion 事件日志中找到该信息(前提是您已将日志记录级别设置为显示信息消息)。

但这里最好的选择可能是调试事件系统,这样您就可以在事件触发时直接检查对象。Here http://yatb.mitza.net/2012/03/debugging-tridion-2011-event-system.html你可以找到一个不错的博客文章 http://yatb.mitza.net/2012/03/debugging-tridion-2011-event-system.html关于如何设置事件系统的调试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Tridion 中获取当前登录用户的 tcmid? 的相关文章

  • 获取DLL函数的内存地址

    我想知道是否有可能 使用 C 和 WindowsAPI 是否有一个函数可以让我获得 dll 中函数的 32 位 我认为 内存地址 例如 如何获取 kernel32 dll 中 Beep 的 32 位 xxxxxxxx 地址 其次 如果我在汇
  • 在 DLL 中,函数表的结构如何?

    我一直在研究不明确支持我的操作系统的设备库的实现 特别是 我有一个反汇编的 DLL 以及大量的支持源代码 现在 功能表 导出表是如何构造的 我的理解是 第一个结构 data部分是 RVA 表 接下来是通过索引链接到第一个地址表的字符串表 这
  • 如何使用 Firebug 或类似工具调试 JavaScript / jQuery 事件绑定?

    我需要调试一个使用 jQuery 执行一些相当复杂和混乱的 Web 应用程序DOM http en wikipedia org wiki Document Object Model操纵 在某一时刻 一些绑定到特定元素的事件不会被触发 而是停
  • 使用Delphi Dll和一些问题

    我想使用Delphi制作的dll 它有这个功能 函数 CryptStr str Key AnsiString DecryptStr boolean AnsiString 标准调用 我将 Dll 复制到 bin debug 和应用程序根目录中
  • 为什么这个类库dll没有从app.config获取信息

    我正在开发一个自定义 HttpHandler 为此我编写了一个 C 类库并编译为 DLL 作为其中的一部分 我有一些目录位置 我不想在应用程序中硬编码 所以我尝试将其放入我之前使用过的 app config 中 在此之前 只需构建应用程序配
  • android可以在本机模式下从sd卡加载dll吗

    我想把我写的程序移植到android上 该程序是在 Windows 和 Linux 上用 C 编写的 该程序使用 dll 作为插件架构 通过下载程序从特定文件夹加载的 dll 可以将新插件添加到程序中 我的问题是 是否可以将为 androi
  • Typescript 和 React:使用解构的事件处理程序的正确类型是什么?

    当我在 React 中使用事件处理程序时 我遇到了 Typescript 严格性的问题 具体来说 我无法使用对象解构handleClick 进行的功能onClick handleClick 属性 这是不干净的版本 它是唯一一个打字稿没有抱怨
  • 如何使用核心服务将外部文件导入 SDL Tridion 2011?

    我想使用核心服务将 PDF Word 和 Excel 文件推送到 SDL Tridion 2011 我尝试了下面的代码但收到此错误 属性 BinaryContent 的值无效 无法打开上传的文件 using ChannelFactory
  • 没有名为“_pywrap_tensorflow_internal”的模块

    在尝试验证tensorflow gpu的安装时 在尝试执行 import tensorflow as tf 时出现ImportError 我在 Windows 7 上使用 Quadro K620 Tensorflow 是使用 pip 安装的
  • 从 JQuery 中的元素获取点击处理程序

    如何获取对 JQuery 中元素的单击处理程序的引用 这是我正在尝试做的事情 存储点击处理程序 更改下一次单击的单击处理程序 恢复原始点击处理程序 var originalClick settings currentTarget click
  • 不显眼的 Javascript 混淆了事件处理

    你知道我最喜欢引人注目的 javascript 的什么吗 当你触发一个事件时 你总是知道它会做什么 a a 现在每个人都在喝这种不引人注目的酷爱饮料 这一点就不那么明显了 对绑定事件的调用可以发生在页面中包含的任意数量的 javascrip
  • 如何从DLL中提取字符串资源

    我正在制作管理系统文件扩展名的应用程序 但遇到问题 系统扩展如 jpg exe dll png txt等有一个名为FriendlyTypeName 例如 FriendlyTypeNamejpeg 文件的内容是 SystemRoot Syst
  • 由于 MSVCR110.dll,MS Visual Studio 2012 Ultimate 无法启动

    当我尝试运行 MVS 2012 时 我总是收到错误 在库 DLL MSVCR110 dll 中找不到过程 crtCreateSymbolicLinkW 的入口点 我已经从我的另一台计算机复制了这个 dll 文件 一切正常 但没有帮助0 o
  • 制作 C# 项目 DLL 和 EXE

    我正在开发一个项目 需要有一个可执行文件以便用户可以运行配置界面和一个可以嵌入其他项目以使用其他一些功能的 DLL 有没有办法让 Visual Studio 同时生成可执行文件和 DLL 而不是每次都手动切换 我同意 TJMonk15 的观
  • 如何在我的项目中使用 FFTW DLL 导入库 .lib 作为静态 .lib?

    我了解 C 和编译小型插件 始终基于类似且布局的工作流程 虽然目前我需要将最新版本的 FFTW 编译成静态库 或者从编译版本中获取它 这应该会容易得多 但这给了我一个非常困难的时间 可能是因为我不知道编译的来龙去脉 请注意 我正在使用 Vi
  • 是否可以防止出现文件对话框?为什么?

    假设我有输入 类型 文件 元素 我想拦截 onclick 事件并防止在不满足条件时出现文件对话框 是否可以 如果不是的话 为什么 Soufiane 的代码要求您的页面上有一个名为 jQuery 的 Javascript 库 如果您没有 您可
  • 如何将带有参数的事件处理程序添加到 Javascript 中的元素数组中?

    我有一个三步流程 完全依赖 JavaScript 和 Ajax 来加载数据并为流程从一个步骤到下一个步骤设置动画 更复杂的是 步骤之间的过渡 向前和向后 是动画的 当用户通过过程锚点的进度时 会显示当前步骤和先前的步骤 如果他们单击先前的步
  • 如何使用 java/vb 脚本调用自定义 ActiveX dll 中的方法

    我使用 VB6 创建了一个 ActiveX dll 并使用打包和部署向导将其打包 生成了一个 cab 文件和一个演示 HTML 页面 此 ActiveX dll 包含一个 simgle 方法 该方法返回字符串且不接受任何参数 我遇到的麻烦是
  • Exchange 上公用文件夹上的 ItemAdd 事件

    我在将事件处理程序附加到ItemAdd公共文件夹的事件 问题是事件处理程序在几次后停止被调用 成功调用 代码很简单 我有一个ThisAddIn类创建一个对象 该对象又将一个函数附加到ItemAdd其构造函数中的事件 该函数只是弹出一个消息框
  • SDL Tridion 中的关键字路径

    有人可以提供一些关于如何做到这一点的想法吗 这可能非常简单和基础 但我无法弄清楚 这是我的要求 我有一个带有子关键字 B 的类别 A 而 B 有另一个子关键字 C 我想获取组件模板中所选关键字的确切路径 例如 如果用户选择关键字 C 我需要

随机推荐