我有一个关于使用互操作dll处理自定义页面上的用户访问的说明。
以下是场景:-
-
ABC user
对CM
没有任何访问权限(注意:ABC用户是tridion用户) - 如果 ABC 用户访问自定义页面,则用户应使用管理员用户进行模拟
- 现在ABC用户将创建/更新组件/页面并发布组件/页面
- 但是问题出在组件/页面的历史记录上,显示
admin user
名称的名称,但我想用ABC user
的名称记录更改
我怎样才能做到这一点?
或
在不使用模拟的情况下,是否有任何最佳方法可以实现此目的?
我想知道你为什么要这样做。当您使用管理员用户模拟用户 ABC 时,ABC 用户可以在系统中执行任何操作。
为什么不将 ABC 用户添加到 CM 系统并授予用户所需的权限。
要以ABC用户的名称记录历史记录中的更改,据我所知,用户必须是CM用户。
我很确定你想做的事情是不可能的,正如@Bappi所建议的那样。对 Tridion 物品执行操作时,您有 2 种选择。要么以有权执行操作的人的身份执行此操作,要么以具有权限的用户(即您的管理员用户)的身份执行此操作。CMS 将存储有关哪个用户执行操作的系统元数据(这是您看到的创建或修改组件的用户)。不能(也不应该)使用 API 覆盖或修改此数据。
如果您真的需要知道谁执行了该操作,请授予他们执行此操作的权限(无论如何,当您给他们这个安全漏洞时,这似乎是一个奇怪的要求,也许您可以解释更多关于这背后的逻辑),或者可以在您的架构中添加一个名为"作者"的字段并使用您的自定义页面使用 ABC 的用户名填充它。
如果这不是一个可行的选项,您还可以考虑授予用户 ABC 对目标出版物中某种临时文件夹的访问权限,他们可以在其中以自己的帐户(仍通过自定义页面)制作组件,以便您获取历史记录,然后模拟管理员用户将其移动到所需位置。
设置发布级别的权限?
- 加载自定义页面时,将用户的权限设置为特定发布。
- 操作完成后,删除用户的权限。
但我想,还是有漏洞的。
当此自定义页面运行时,如果用户访问内容管理器,他们可以看到发布,并且可以在此时执行所需的操作。