我和.net

主要讲述Sharepoint以及OfficeSystem和在.net下的开发和应用

导航

在Office对象中使用rms加密

 

    微软提供的rms服务可以对文档进行加密和授权,经过加密和授权的文档,只有指定的用户才可以查看和执行相应的操作,这对于那些想保护自己信息的企业来说无疑非常有用。我们公司打算用它来对技术管理部的文档借阅系统中的好几十个吉的文档进行保护。呵呵呵,如果一个一个文档地加密肯定不现实,那么,只有自己开发一个程序来完成这个操作了。一开始,我想使用rmssdk中提供的方法来做,后来发现,那有点复杂。我想,既然office中已经有了这个功能,为什么不直接调用Office对象来做呢?我到msdn中搜了一把,很轻松就找到了解决方案。我根据msdn中提供的例子,我做了段小程序就解决了这个问题,下面是我的例子:


    首先要引用
microsoft.office.core(com组件中的office lib)microsoft.office.excelword

    Imports Microsoft.office.Core.MsoPermission

    然后用下列代码来完成加密

Try

'首先启动一个word进程,那么运行这段程序的机器上当然就要安装office2003rms客户端啦

          myApp = New Microsoft.Office.Interop.Word.ApplicationClass

         '打开要加密的文档

myDoc = myApp.Documents.Open(TextBox1.Text)

myDoc.Activate()

'创建一个加密的对象

Dim IrmPermission As Microsoft.Office.Core.Permission

IrmPermission = myDoc.Permission

IrmPermission.Enabled = True

Dim msoPerm As Integer

'只读

If Me.CheckBoxReadOnly.Checked = True Then

msoPerm = msoPerm + Microsoft.Office.Core.MsoPermission.msoPermissionRead

End If

'允许打印

If Me.CheckBoxPrint.Checked = True Then

msoPerm = msoPerm + Microsoft.Office.Core.MsoPermission.msoPermissionPrint

 

          End If

          '允许复制

          If Me.CheckBoxCopy.Checked = True Then

         msoPerm = msoPerm + Microsoft.Office.Core.MsoPermission.msoPermissionExtract

                   End If

                    '允许完全控制

        If Me.CheckBoxFullControl.Checked = True Then

    msoPerm = msoPerm + Microsoft.Office.Core.MsoPermission.msoPermissionFullControl

        End If

            '允许另存

        If Me.CheckBoxSave.Checked = True Then

    msoPerm = msoPerm + Microsoft.Office.Core.MsoPermission.msoPermissionSave

        End If

            '允许使用浏览器阅读

        If Me.CheckBoxUseBrowers.Checked = True Then

    IrmPermission.EnableTrustedBrowser = True

        Else

    IrmPermission.EnableTrustedBrowser = False

        End If

            '允许脱机阅读

        If Me.CheckBoxOnline.Checked = True Then

    IrmPermission.StoreLicenses = False

        Else

    IrmPermission.StoreLicenses = True

        End If

                   'textbox3中是允许读取该文档的用户的邮件地址,第二个参数就是前面计算好的权限代码,最后一个参数是过期日期

    IrmPermission.Add(TextBox3.Text, msoPerm, ExDate)  '#7/31/2005#)

             '另存

    myDoc.SaveAs(TextBox2.Text & "\" & System.DateTime.Now.ToString("yyyyMMddHHmmss") & ".doc")

    myDoc.Close()

    myApp.Quit()

    IrmPermission = Nothing

    myDoc = Nothing

    myApp = Nothing

    MessageBox.Show("OK!")

    Catch ex As Exception

 

        MessageBox.Show(ex.Message)

    End Try

posted on 2005-10-01 08:19  皮皮  阅读(2962)  评论(3编辑  收藏  举报