Graph API变更通知认证端点结构不明确,求.NET实现示例
处理Microsoft Graph订阅验证请求的实现方案
当你创建Microsoft Graph订阅时,Graph会向你的通知端点发送验证请求以确认端点有效性,这个请求携带validationToken参数,你需要将该参数原封不动返回作为响应体,同时返回200 OK状态码即可完成认证。
针对你的ASP.NET Web API代码,修改如下:
[HttpPost] [Route("api/changeNotifications")] public HttpResponseMessage ChangeNotificationEndpoint(HttpRequestMessage httpRequestMessage) { _logger.Debug("Anfrage von Graph an Vif erhalten"); // 提取验证令牌 var validationToken = httpRequestMessage.RequestUri.ParseQueryString().Get("validationToken"); if (!string.IsNullOrEmpty(validationToken)) { // 处理验证请求:返回令牌作为纯文本内容 return new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(validationToken, Encoding.UTF8, "text/plain") }; } // 这里处理后续正常的变更通知(如果需要) // 比如解析请求体中的通知数据 return new HttpResponseMessage(HttpStatusCode.OK); }
关键说明:
- 验证请求的
validationToken通过请求URL的查询参数传递,并非在请求体中 - 响应内容必须是纯文本格式的令牌,不能添加任何额外包装(比如JSON结构)
- 完成验证后,Graph才会开始向该端点发送真正的邮件变更通知
内容的提问来源于stack exchange,提问作者flam3shadow
相关产品推荐
相关产品推荐

