You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kentico如何不使用UI Personalization禁用页面级附件?

无需UI Personalization禁用Kentico页面附件的实现方法

以下是三种经过验证的可行方案,均不需要启用UI Personalization功能:

方法1:通过模块权限全局配置

  • 进入Kentico后台「模块」应用,搜索找到页面(Pages)模块
  • 切换到「权限」标签页,选择对应站点需要限制的角色,如需全局禁用可选择所有角色
  • 找到「管理附件」权限项,取消勾选对应角色的权限即可
  • 配置完成后即时生效,所有角色将无法进行页面级附件的新增、删除操作

方法2:针对特定页面类型禁用

如果只需要禁用部分页面类型的附件功能,可使用该方案:

  • 进入「页面类型」应用,找到目标页面类型点击编辑
  • 切换到「字段」标签页,找到系统自带的Attachments字段,可直接删除,也可以将字段的可见性条件设置为false隐藏该字段
  • 保存配置后,仅该类页面不会显示附件上传入口,其他页面类型不受影响

方法3:自定义事件全局拦截

如果需要彻底拦截所有附件操作,避免权限配置遗漏,可以通过注册全局事件实现:

  1. 新建自定义类库,引用Kentico核心程序集
  2. 添加如下自定义模块代码:
using CMS.DocumentEngine;
using CMS.Base;

[assembly: RegisterModule(typeof(CustomAttachmentDisablerModule))]
public class CustomAttachmentDisablerModule : Module
{
    public CustomAttachmentDisablerModule() : base(nameof(CustomAttachmentDisablerModule)) { }

    protected override void OnInit()
    {
        base.OnInit();
        // 拦截附件新增操作
        DocumentAttachmentEvents.Insert.Before += (sender, eventArgs) => eventArgs.Cancel();
        // 如有需要可同时拦截附件删除、修改操作
        // DocumentAttachmentEvents.Delete.Before += (sender, eventArgs) => eventArgs.Cancel();
        // DocumentAttachmentEvents.Update.Before += (sender, eventArgs) => eventArgs.Cancel();
    }
}
  1. 将编译后的dll部署到站点bin目录即可生效,所有页面级附件的操作都会被拦截

页面附件功能界面

内容的提问来源于stack exchange,提问作者chamara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:24:03