Tridion 2009 - 在自定义页面上使用互操作 - 用户应该充当类似管理员的角色

Posted

技术标签:

【中文标题】Tridion 2009 - 在自定义页面上使用互操作 - 用户应该充当类似管理员的角色【英文标题】:Tridion 2009 - Using Interops on Custom page - User should acts as something like admin 【发布时间】:2012-04-23 10:37:21 【问题描述】:

我有一个关于使用 Interops dll 处理自定义页面上的用户访问的说明。

下面是场景:-

    ABC userCM 没有任何访问权限(注意:ABC 用户是 tridion 用户) 如果 ABC 用户访问自定义页面,用户应该被模拟为管理员用户 现在 ABC 用户将创建/更新组件/页面并发布组件/页面 但问题在于组件/页面的历史显示名称为admin user 名称但我想用ABC user 的名称记录更改

我怎样才能做到这一点?或者 在不使用模拟的情况下,有没有最好的方法来实现这一点?

【问题讨论】:

【参考方案1】:

我想知道你为什么要这样做。当您使用 Admin 用户模拟用户 ABC 时,ABC 用户可以在系统中执行任何操作。

为什么不把 ABC 用户添加到 CM 系统,并赋予用户所需的权限。

要在历史记录中记录使用 ABC 用户名称的更改,据我所知,该用户需要是 CM 用户。

【讨论】:

ABC 用户是 tridion 用户,但该用户没有任何访问权限。我不能提供所需的访问权限,因为这是标准。因此,在不授予 ABC 用户任何访问权限的情况下,他应该通过自定义页面执行所有必需的操作。我怎样才能做到这一点,而且历史上应该有 ABC 用户名? 如果我们模拟 Admin 用户,更改会记录在 Admin 用户名中,而不是 ABC 用户名中。 “因为那是标准”不是原因。您无法授予此人访问权限的原因是什么?这是作业题吗? 您可以为每个 ABC 用户创建具有所需权限和权限的影子帐户。存储 ABC 用户与其影子账户之间的链接。使用 ABC 用户的影子帐户在 Tridion 中创建/更新项目。 @DominicCronin:不授予 ABC 用户访问权限的实际原因,因为这些用户将通过此自定义页面仅更新特定内容。而且企业也不希望这些用户访问内容管理器来更新此内容,因为他们可能会滥用 CM。因此,我正在考虑实现这种情况的最佳方法。【参考方案2】:

我很确定您尝试做的事情是不可能的,正如@Bappi 所建议的那样。对 Tridion 项目执行操作时,您有 2 个选择。要么以有权执行该操作的人的身份执行此操作,要么冒充为具有该权限的用户(即您的管理员用户)。 CMS 将存储有关哪个用户执行该操作的系统元数据(这是您看到的创建或修改组件的用户)。不能(也不应该)使用 API 覆盖或修改这些数据。

如果您真的需要知道谁执行了该操作,请授予他们这样做的权利(无论如何,当您给他们这个安全漏洞时,这似乎是一个奇怪的要求,也许您可​​以更多地解释这背后的逻辑),或者可以在您的架构中添加一个名为“作者”的字段,并使用您的自定义页面使用 ABC 的用户名填充它。

如果这不是一个可行的选择,您还可以考虑让用户 ABC 访问目标出版物中的某种临时文件夹,他们可以在其中使用自己的帐户(仍然通过自定义页面)制作组件,以便您获得历史记录,然后冒充管理员用户将其移动到所需位置。

【讨论】:

【参考方案3】:

如何将权限设置为动态发布级别?

    在加载自定义页面时,设置用户对特定出版物的权限。 操作完成后,删除用户的权限。

但我想,还是有一个漏洞。

当此自定义页面运行时,如果用户访问内容管理器,他们可以看到出版物并且他们可以在那一刻执行所需的操作。

【讨论】:

以上是关于Tridion 2009 - 在自定义页面上使用互操作 - 用户应该充当类似管理员的角色的主要内容,如果未能解决你的问题,请参考以下文章

Tridion 2009 SP1:如何为定期发布安排内容页面?

无法在 Tridion 2009 中删除结构组

tridion 2009 - 将多媒体组件从一个出版物复制到另一个出版物

Tridion 2009 SP1 TcmUploadAssembly 无法覆盖现有的 TBB

无法在自定义分类存档页面上获取选项页面自定义字段

Tridion 组件链接在动态组件演示中未解析