.net - 将 ASP.NET Intranet 应用程序与 Outlook 日历集成的技术

标签 .net asp.net outlook exchange-server ews-managed-api

我不能再无视用户的咆哮了。他们想要一个任务调度系统,在某些时候我必须交付。我正在考虑制作自己的(不难),但是用户将拥有两个并排的任务管理系统,因为他们已经将 Outlook 用于同一件事。

在 Outlook 日历/任务集成方面,我想到了两种可能的方法:

1) 使用 JavaScript 和自动化

我似乎记得可以在 JavaScript 中进行自动化。

优点:

  • 我以前做过自动化。

  • 缺点:
  • 自动化太可怕了!
  • 一些坚持(展望
    实体)的责任
    客户端代码,其余的
    服务器端的责任
    代码。这感觉很可怕。
  • 可能的安全问题/
    从 IT 部门阻止

  • 2) 使用一些.NET API 直接与Exchange Server 交互

    Intranet 使用单点登录,因此希望这可以简化安全问题。

    优点:
  • 所有持久性代码都是
    服务器端。

  • 缺点:
  • 我什至不知道这样的 API
    存在。

  • 一如既往,我喜欢站在巨人的肩膀上。有没有走过这条路的人能给我一些指导吗?

    最佳答案

    我们最近使用 Exchange Web Services Managed API 对我们的 Intranet 应用程序进行了相同类型的集成。 .这将是第二种选择的一种方式。我从来没有尝试过使用 JavaScript,所以不知道。

    关于评论 1 的查询:您需要一个 AD 用户,您将使用该用户来模拟和处理其他用户帐户。请引用以下示例:

    假设我有一个名为 fabrikam\myappname 的 Active Dir 帐户带密码 Fabi$Gre@t2010

    void CreateFolder(string targetUserEmail) {
        string appName = "myappname";
        string appPassword = "Fabi$Gre@t2010";
        string emailDomain = "fabrikam";
        string appEmail = string.Format("{0}@{1}.com", appName, emailDomain);
    
        ExchangeService service = new ExchangeService();
        service.Credentials = new NetworkCredential(appName, appPassword, emailDomain);
        service.AutodiscoverUrl(appEmail);
    
        service.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.SmtpAddress, targetUserEmail);
    
        Folder newFolder = new Folder(service);
        newFolder.DisplayName = "TestFolder1";
    
        newFolder.Save(WellKnownFolderName.Inbox);
    }
    

    请检查文章Configuring Exchange Impersonation使模拟工作。

    希望有帮助。

    关于.net - 将 ASP.NET Intranet 应用程序与 Outlook 日历集成的技术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4328844/

    相关文章:

    c# - 通过参数更新列名

    c# - 是从应用程序代码良好设计中抛出 OutOfMemoryException

    c# - 如何将多个收件人添加到 mailitem.cc 字段 c#

    c# - 从数据库中检索数据的高级方法

    html - 在 Outlook 中错误显示 html 电子邮件

    html - 填充和边距在响应式电子邮件模板(outlook)中不起作用

    c# - 试图将 IList 转换为 List 以便 AddRange

    .net - 将数据从一个数据集循环复制到另一个数据集的最快方法

    asp.net - ASP.NET MVC 5 中的基本身份验证

    javascript - 使用ajax以mvc模式通过 Controller 发送数据