asp.net - Exchange Web 服务、带有 Windows 身份验证的 ASP.NET、IIS 8.5 和模拟

标签 asp.net windows-authentication impersonation iis-8 ews-managed-api

我被 IIS 设置缓慢而无情地逼疯了,以允许从使用 Windows 身份验证的 ASP.NET 网站访问 Exchange Web 服务。我已经找到了几十篇关于如何设置它的文章,每篇文章似乎都在说不同的东西,或者向我描述了一个当我复制它时失败的过程,大概是因为我有一些假设的知识。

  • 应用程序使用 Windows 身份验证来识别用户。
  • 应用程序使用 EWS 发送电子邮件,因此电子邮件最终会出现在用户“发送的项目”中
  • Exchange 托管在与 Web 服务器不同的服务器上,因此我假设我已阅读有关问题的“双跳”正在发生。我不是系统管理员,所以我不太明白这一点。

  • 是否有一些明确的方法可以让我将其设置为工作,然后可能会解决问题?

    最佳答案

    是的,从你的描述来看,它肯定是一个双跳问题。修复起来并不容易,基本上您需要在 Web 服务器和交换服务器之间设置委派,以便 Web 服务器能够使用用户登录 Web 服务器时发出的 kerberos 票证。

    我还没有部署一个真正做到这一点的解决方案。我们最终要么使用服务帐户(具有适当的交换、邮箱等访问权限),要么将 Web 应用程序放在交换服务器上。这两种选择都不是特别优雅,但在大多数情况下,运营团队不愿意设置委派或不知道如何正确地进行委派。

    关于asp.net - Exchange Web 服务、带有 Windows 身份验证的 ASP.NET、IIS 8.5 和模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21568802/

    相关文章:

    asp.net - raisePropertyChanged 事件有什么用?

    c# - 加载时更改页面 css 文件

    .net - 我可以在没有 .NET 库的情况下使用 Windows 身份验证使用 WCF REST 服务吗?

    asp.net-core - 在 Active Directory 环境中生成 JWT

    c# - 可以在 app.config 中模拟控制台应用程序吗?

    javascript - 数据加载后动态生成 HTML

    asp.net - ASP.NET FormsAuthentication cookie 值的内容是什么?

    asp.net-mvc - asp.net mvc windows 身份验证 - 用户以不同用户身份登录

    c# - ASP.NET - 使用模拟但使用 AppPoolIdentity 连接到 SQL Server

    asp.net - System.DirectoryServices.AccountManagement.UserPrincipal - localhost 但不是 iis