EWS托管API后续请求验证机制及闲置后可用性咨询
我来帮你理清这两个关于EWS托管API的关键问题:
1. 创建EWS对象后,后续请求的验证方式
这其实取决于你初始化ExchangeService时用的认证类型,两种主流情况的机制不一样:
- 基本认证(仅适用于本地Exchange或未禁用基本认证的旧租户):当你用
NetworkCredential设置账号密码创建服务实例后,后续每一次API请求都会自动把凭据编码成Base64格式,放在HTTP请求的Authorization头里发送给Exchange服务器。简单说,每次请求都会自动携带加密后的用户凭据,不需要你手动处理令牌之类的东西。不过要注意,Exchange Online现在已经全面淘汰基本认证了,这种方式基本只用于老版本的本地Exchange环境。 - OAuth认证(当前Exchange Online推荐方式):如果是通过Azure AD获取的令牌来初始化
ExchangeService,API会自动帮你管理访问令牌。首次请求时会拿到一个短期的访问令牌(通常有效期1小时左右),后续请求都会在HTTP头里携带这个令牌。而且只要你初始化时提供了有效的刷新令牌,当访问令牌过期,API会自动调用刷新接口获取新的访问令牌,完全不需要你手动干预,后续请求依然能正常通过认证。
2. 闲置2-3小时后再发起请求,是否还能正常执行?
这个得看你用的是哪种认证方式:
- 基本认证场景:只要你的账号密码依然有效(没被改、没被禁用),哪怕闲置一整天,再次发起请求时,API还是会自动带上凭据,请求能正常执行,不会因为闲置时间长失效。
- OAuth认证场景:
- 如果初始化时带了有效的刷新令牌:哪怕闲置超过1小时(访问令牌过期时间),API会自动用刷新令牌换一个新的访问令牌,所以请求依然能正常跑起来,完全不用你操心。
- 如果没有刷新令牌(比如用的是一次性的短期令牌),或者刷新令牌已经过期:那闲置2-3小时后,原有的访问令牌早就失效了,这时候发起请求会直接返回认证错误,你得重新获取有效的访问令牌,或者重新初始化
ExchangeService实例。
内容的提问来源于stack exchange,提问作者Dinesh Prajapati
相关产品推荐
相关产品推荐

