Spire.Doc is a professional Word .NET library specifically designed for developers to create, read, write, convert and print Word document files. Get free and professional technical support for Spire.Doc for .NET, Java, Android, C++, Python.

Thu Jul 28, 2022 6:21 am

您好,
我在使用文档保护功能的时候,根据教程如下进行了设置之后,能将word文档正确设置成只读,并且在office中输入密码可以停止保护。

Code: Select all
_doc.Protect(ProtectionType.AllowOnlyReading, “111”);


但是我想要通过代码取消文档保护的时候,尝试了下面四种方式,都能够实现取消文档保护,这个安全性是不是存在问题?
(按正常的想法,应该只有③能够正常取消文档保护)
Code: Select all
// ①不设置密码
_doc.Protect(ProtectionType.NoProtection);

// ②设置错误密码
_doc.Protect(ProtectionType.NoProtection, "333");

// ③设置正确密码
_doc.Protect(ProtectionType.NoProtection, "111");

//④直接修改属性
_doc.ProtectionType = ProtectionType.NoProtection;

weiqp1994
 
Posts: 7
Joined: Tue Jul 19, 2022 7:56 am

Thu Jul 28, 2022 10:07 am

您好,

感谢您的咨询。

这一类权限的保护级别跟文档打开密码保护还是有区别的。这类保护信息也是作为一块文档属性写到文档里的,解析文档之后删除这一块数据那保护也就不存在了。只是一般的文档用户只会使用Word/Wps之类的可视化编辑工具来操作文档,不会去用底层的解析工具来改这些保护属性。而设置打开密码后,不输入密码连解析和加载都无法完成。可以认为它只是用于限制仅大多数普通用户的。即便是别人不用我们的产品去更改,他仍然可以用其他工具。甚至如果他了解Word文档结构,他可以自己手动修改。所以这一块产品中并没有跟打开密码一样处理地这么严格。大概就是这么个意思,希望您能理解。
Sincerely,
Andy
E-iceblue support team
User avatar

Andy.Zhou
 
Posts: 483
Joined: Mon Mar 29, 2021 3:03 am

Return to Spire.Doc