gpt4 book ai didi

c# - Exchange Online (EWS) WebCredentials 是否安全传递?

转载 作者:行者123 更新时间:2023-11-30 14:57:19 24 4
gpt4 key购买 nike

我正在编写一个简单的 .NET Web 应用程序以使用 EWS 在我们的 Exchange Online (Office 365) 云站点上查看一些房间日历。我知道如何在我的代码中创建 Exchange 服务,将凭据设置为新的 WebCredentials(使用有效的用户名/密码),并自动发现服务 URL。

我的问题是:用户名/密码对是安全发送的还是明文发送的?

如果这不安全,我将服务的 URL 显式设置为 https://outlook.office365.com/EWS/Exchange.asmx 怎么样?网址?

最佳答案

您可以 set the url directly using 而不是调用 AutoDiscoverUrl() exchangeService.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");

此外,在调用 AutoDiscoverUrl() 之后,您还可以检查 ExchangeService 对象的 Url 属性,看它是否解析为安全的端点或您信任的端点(例如,来自配置文件中的特定列表)。

要绝对确保返回的 Url 是安全可靠的,您应该验证返回的证书是否来自您期望的组织,并且该证书是由受信任的机构签署的。这process is explained here .文章中提到的默认实现也接受自签名证书,您可能不想在生产代码中这样做。例如,您可以将证书固定到特定指纹。

如果您想排除自签名证书,请更改引用示例中的以下代码以返回 false:

// When processing reaches this line, the only errors in the certificate chain are 
// untrusted root errors for self-signed certificates. These certificates are valid
// for default Exchange server installations, so return true.

// Or when you know that the certificate is signed by a trusted root authority, return false.
return false;

为了回答您的问题,用户名/密码通常使用 NTLM 或 Kerberos 安全发送。在最坏的情况下they can be sent using basic authentication ,但如果您通过 SSL 连接,那么只要您正确验证 SSL 证书,拦截密码就不会那么容易。

关于c# - Exchange Online (EWS) WebCredentials 是否安全传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20982790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com