很急的,大家进来看看好吗?帮一下我呀,问过很多大哥都不会的问题

kellymax 2004-09-30 03:18:54
是这样的,我用.net做一个外接程序for word的,外接是做好了,但有点问题,就是如果我用过document对象的Signatures对象里的属性后,我在word程序作保存操作的时候就会有问题了,说“由于文件许可权错误,Word 无法完成保存操作。”这样的对话框

请问我该如何做才能正常呢?

在这先谢各位能解或不能解的朋友们进来看,不能解的,能帮顶吗?谢了

(另注:Signatures是在Microsoft.Office.Core命名空间下的一种类型,用在Word.Document对象下的)
...全文
644 32 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
kellymax 2004-10-07
  • 打赏
  • 举报
回复
水如烟,谢谢你的回复,说明一下:

初始化后这样也是正常的
Dim Result As Integer
Result=oWord.SigCount
oWord.Save

这样是当然是正常的,因为你没改过文档,就算你是用Save,Word知道你没改,所以就不会运行Save所以做的事情,所以就不会出错了,如果你改过再存,就一定错了!唉,看样子我是做不出来了,挨骂定了,结贴了,本来麻烦了水如烟多次,应全给你的,可网友们都很好的帮我顶,呵呵,看来要减你一点咯,你觉得不够的话向我说一下,我另开贴给你就是了,谢谢你,水如烟
水如烟 2004-10-06
  • 打赏
  • 举报
回复
由于自己创建的数字证书未由正规的证书颁发机构签发,所以使用这种证书签名的宏工程被称为自签名工程。您自己创建的证书被认为是未经验证的,如果安全级设置为“高”或“中”,则将在“安全警告”框中生成一条警告消息。Microsoft Office 仅在具有使该证书生效的私钥的计算机(如果不与其他计算机共享私钥,则通常仅为实际创建证书的计算机)上信任自签名证书。

商业认证授权机构

若要从商业认证授权机构(例如 VeriSign, Inc.)获得数字证书,您或您的组织必须将申请提交给授权机构。

若要进一步了解提供 Microsoft 产品服务的证书颁发机构的相关信息,请参见 Microsoft TechNet Security 网站。

以开发者的身份,应向软件发布人申请 2 级或 3 级数字证书:

2 级数字证书是为以个人身份发布软件的人员设计的。此等级的数字证书对单个的发布人提供身份担保。
3 级数字证书是为发布软件的公司和其他组织设计的。此级别的数字证书对发布组织提供更高级的担保。3 级数字证书设计用来表示目前由软件的零售渠道提供的担保级别。3 级数字证书 的申请人还必须符合根据 Dun & Bradstreet Financial Services 的等级评定标准确定的最小财务稳定性级别。
接收数字证书时,系统向您提供说明,即有关如何将数字证书安装在您用来签名 Microsoft Office 解决方案的计算机上。

内部认证授权机构

某些组织和公司可能具有充当它们自己的认证授权机构的安全管理员或组,并且这些组织和公司通过使用诸如 Microsoft Certificate Server 工具制作或分发数字证书。Microsoft Certificate Server 可在功能上充当单独的认证授权机构,或作为现有认证授权层次结构的一部分。根据您公司中 Microsoft Office 数字签名功能的使用情况,可以通过使用来自公司内部的认证授权机构的数字证书为宏工程签名。或者,可能需要管理员通过使用经过核准的证书为您的宏工程签名。有关您公司政策的信息,请与网络管理员或 IT 部门联系。
水如烟 2004-10-06
  • 打赏
  • 举报
回复
您可以从商业认证授权机构(例如,VeriSign, Inc)或从您内部安全管理员那里,或从专业的信息技术 (IT) 公司那里获取数字证书。或者,也可用 Selfcert.exe 工具自己创建数字签名。

数字证书 (数字证书:文件、宏工程或电子邮件的附件,它证明上述各项的真实性、提供安全的加密或提供可验证的签名。若要以数字形式签发宏工程,则必须安装数字证书。)

应当只在宏工程经过测试且可以分发后才为其签名,因为任何时候以任何方式修改其代码,都会删除其签名。不过,如果您的计算机上有正确的数字证书,宏工程在保存时会自动被重新签名。

应当只在宏工程经过测试且可以分发后才为其签名,因为任何时候以任何方式修改其代码,都会删除其签名。不过,如果您的计算机上有正确的数字证书,宏工程在保存时会自动被重新签名。

如果要防止解决方案的用户无意中修改宏项目并使您的签名失效,在进行签名前请锁定宏项目。您的数字签名仅说明您保证在签名后,该项目未被篡改过,并不证明此项目是您编写的。所以锁定宏项目并不能防止其他用户用另一个签名替换此数字签名。公司管理员可能会重签模板 (模板:是指一个或多个文件,其中所包含的结构和工具构成了已完成文件的样式和页面布局等元素。例如,Word 模板能够生成单个文档,而 FrontPage 模板可以形成整个网站。)和加载项 (加载项:为 Microsoft Office 提供自定义命令或自定义功能的补充程序。),以便严格控制可以在其计算机上运行的用户。

如果创建了一个向宏工程中添加代码的加载项,您的代码应确定该工程是否已数字签名并在继续修改签名工程的操作前,通知用户其后果。

在对宏进行数字签名时,应考虑使用时间戳以使其他人员即使在用于签名的证书过期之后也可验证您的签名。有关宏安全性和时间戳的详细信息,请参见 Microsoft Office Online。

/*********
呵,这就是证书的价值?
水如烟 2004-10-06
  • 打赏
  • 举报
回复
我在想这句话:
再作任何保存的操作,所有的电子证书将会消失,证明该文档已改.
这么辛苦(可能还要钱)赋一份证书给文档,如果随便能改能保存,只是为了证明这个文档已经给修改了,是不是有点怪(不值得)。
再有,一经修改后,证书也没了,你能判断这份文档现在没证书,以前有没有证书呢?
这样的话证书的价值就不存在了。
所以,关键是证书的使用,你再看看Signatures还有别的关于证书使用的相关属性和方法,
看看有什么权限要求。
kellymax 2004-10-06
  • 打赏
  • 举报
回复
不是吧?没人回复???水如烟,请你再来一次吧,我已说明加上证书后的文档是什么都可以打开的了,请帮忙再想想好吗?
水如烟 2004-10-06
  • 打赏
  • 举报
回复
好啦,又做自已的事啦
好运
水如烟 2004-10-06
  • 打赏
  • 举报
回复
或者可以这样想吧,Word默认是不打开一些特殊权限的安全机制的
只是如果你碰到了一点点关于此类的东西,它就运行这个机制了
而且它还当真的来玩
水如烟 2004-10-06
  • 打赏
  • 举报
回复
原来“红星”的价值可以使整个版面全是自己的“作品”
水如烟 2004-10-06
  • 打赏
  • 举报
回复
原来证书的价值在于发布自己的大作后保证打官司时在法官司面前验证那份“作品”真是我的原作。
水如烟 2004-10-06
  • 打赏
  • 举报
回复
建议这样做:
将验证证书和写文档分两次做,也就是分别打开这个文档。
第一次打开判断是否有证书,然后退出;
第二次打开写东西,再保存。
不过如果有证书,改了能否保存(注意,这里并没有去查它证书),
这我没法验证了。
水如烟 2004-10-06
  • 打赏
  • 举报
回复
楼主,你如此只是判断有没有证书,应该是没问题的
你为什么又判断证书又往里头写东西呢?
水如烟 2004-10-06
  • 打赏
  • 举报
回复
我的代码是在我的“代码测试器”上写的,因此看起来有点怪
这个代码测试器在我的BLOG上有全部代码
水如烟 2004-10-06
  • 打赏
  • 举报
回复
就是说,你检查证书后就不能修改文档了,
要不,就算此文档是没有证书的,Word也认为是有证书的,因此修改文档后就保存出错了
水如烟 2004-10-06
  • 打赏
  • 举报
回复
初始化后这样也是正常的
Dim Result As Integer
Result=oWord.SigCount
oWord.Save
水如烟 2004-10-06
  • 打赏
  • 举报
回复
哈,果是如此:

Class WordObj
Private shared obj,Doc
Public Shared Sub CreateApplication
obj=CreateObject("Word.Application")
obj.Visible = True
End Sub
Public Shared Sub GetDocument
Doc=obj.Documents.Open("C:\Tmp\test.doc")
End Sub
Public Shared Function SigCount As Integer
Return Doc.Signatures.Count
End Function
Public Shared Sub Save()
Doc.Save
End Sub
Public Shared Sub SaveChange()
Doc.Words.First.Text = "Signatures.Count:" & SigCount.ToString
Doc.Save
End Sub
End Class

'调用
Dim oWord As WordObj
oWord.CreateApplication
oWord.GetDocument
'这样是正常的(没改内容)
oWord.Save
'这样出错(改了内容)
oWord.SaveChange
tl_pear 2004-10-06
  • 打赏
  • 举报
回复
up
kellymax 2004-10-06
  • 打赏
  • 举报
回复
水如烟……不知先生还是小姐,只好直呼其名讳了,我BOSS就是为了这个才叫我做一个令有证书的文档不可以再次保存,所以我要判断这文档有没有数字证书,还有,证书是要钱的,如果是自己创建的那个是可以用,但那个是不合法的,当我一判断该文档有没有证书时在WORD程序的表面是没有错误的,但当判断一个没有证书的普通文档时,却不可以再对该文档作任何的保存操作了,包括save as,最后,我是对文档判断是否有数字证书,不是宏,谢谢水如烟(请原谅我直呼您的名讳,呵呵)
kellymax 2004-10-05
  • 打赏
  • 举报
回复
对一个文档加上证书后,是任何人都可以打开的,证书的作用是保证加上证书后是没给改过的,如果改过后,再作任何保存的操作,所有的电子证书将会消失,证明该文档已改,水如烟,这样说,你明吧?呵呵,能帮的,请帮帮我吧
kellymax 2004-10-05
  • 打赏
  • 举报
回复
水如烟 2004-10-04
  • 打赏
  • 举报
回复
如果一个文档赋给证书后,是如何打开的,总不会任何人都可以打开的吧
加载更多回复(12)

16,722

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧