首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > Outlook Add-In,安全带来的麻烦
【标  题】:Outlook Add-In,安全带来的麻烦
【关键字】:Outlook,Add-In
【来  源】:http://blog.joycode.com/johnxu/archive/2005/12/21/69278.aspx

Outlook Add-In,安全带来的麻烦

最近在做OutlookAdd-In,需要在Outlook工具栏上加个按钮,用户点击的时候,能够将当前的邮件保存下来,再对保存的邮件进一步的一些操作。

 虽然Office Add-In是基于COM的,但VS2003也提供了相关的模板。既然如此,先考虑用.Net来实现了。

关于如何在.Net中实现Outlook插件,找到一片不错的文章:An Introduction to Programming Outlook 2003 Using C#,照猫画虎,也做的差不多了。

 

然后在运行的时候,遇到了第一个问题,就是当点击按钮的时候,会弹出提示筐,要求确认是否允许访问Outlook

 

导致弹出对话框的原因,是因为Outlook中实现了一个叫做Outlook Object Model Guard的措施,用于控制对于Outlook中某些重要信息(如邮件地址、正文)的编程访问。为了保存邮件所需要调用的MailItem—SaveAs方法,是在安全控制之类的。想想几年前病毒和垃圾邮件利用Outlook接口大肆传播的情形,可以理解现在的Outlook为啥多了这么多限制。

 

理解归理解,但是这个弹出对话框实在不是那么雅观,于是寻找解决方法。在参考了一堆文章,尤其是Important Security Notes for Microsoft Outlook COM Add-In Developers之后,大概里清楚了思路:

 

对于受到Outlook Object Model Guard保护的Outlook编程接口中的属性和方法,在同时满足如下两个条件的情况下,不会弹出安全警告筐:

1.  对于属性和方法的调用,是在受信任的COM Dll中进行的。

Outlook 2003默认安全环境下,所有的COM Dll是受信任的;如果Outlook 2003连到Exchange环境中,对于COM Dll的信任将依赖于Exchange管理员定义的安全策略。

2.  在满足1的条件下,应用代码中,被调用的对象,必须是从受信任的Outlook Application对象(就是在OnConnection事件中传入的那一个)中派生出来的

 

然而,对于Visual Studio 2003开发出来的Outlook Add-In,默认情况下,将不会被信任(Outlook 2002 COM add-ins are not trusted if they are created in Visual Studio .NET)。因为这些基于.NetAdd-In本身并不直接与Outlook发生联系,而是由Mscoree.dll作为中继。如果要解决或者避开这个问题,在上述的知识库文档中,提出了几种方法:

1.  信任Mscoree.dll,但是这将导致Outlook信任所有.Net Add-In,会导致安全风险

2.  .Net Add-In创建COM的封装类(Using the COM Add-in Shim Solution to Deploy Managed COM Add-ins in Office XP

3.  更改Outlook的安全等级

4.  使用VB或者VC开发Add-In

 

对于牵涉到安全方面的Workaround,都是不考虑的。Shim Solution看上去又太丑。正在犹豫是不是要改用VB的时候,又似乎遇到了另外一个VS2003 Add-In的问题:When COM Registration fails in an MSI (vsdraCOM has no affect),于是下定决心,翻出VS6的安装程序,在n年之后,重新用起了VB6

 

MIZI-Linux启动图标DIY:【上一篇】
Code Project - Your First C# Web Service:【下一篇】
【相关文章】
  • How To Automate Outlook Using Visual C++/MFC
  • outlook问题
  • 金山词霸2002引起的Outlook故障一例
  • 推荐一个好工具: 可以集成在Microsoft Outlook里的“新闻阅读器” NewsGator
  • 让论坛也可以像outlook2003一样有新帖子/留言Popup提示
  • Ten Essential Tools Visual Studio Add-Ins(Visual Studio 十个有用的小插件)
  • NewsGator - 让你在outlook中收发News, WebBlog.
  • Visual Studio Add-Ins Every Developer Should Download Now in MSDN Magazine
  • outlookup常见错误
  • outlook sharing
  • 【随机文章】
  • 网络实验报告 2006.5.26
  • Asp的安全管理(10)
  • ADSL技术简介
  • 12.3 linux学习报告
  • Linux大“虾”谈:PHP中的一些经验积累
  • IP Filter Based Firewalls HOWTO(1)
  • 口令攻击术ZZ^_^
  • 到机房维修服务器完全纪实 4(完)
  • Struts帮助手册
  • DONNET俱乐部的新拐点-加入“国际.NET协会”The International .NET Association (INETA)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.