You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在MS Project VSTO插件中复用当前用户上下文调用Project Online CSOM/ODATA

在MS Project VSTO插件中复用已登录上下文执行CSOM/ODATA调用

可以复用Project Professional客户端已完成认证的上下文,无需手动设置凭证就能执行CSOM和ODATA调用,核心是获取Project Pro已有的认证令牌或会话Cookie,而非新建无认证的请求。

为什么VBA可以直接复用?

VBA代码运行在Project进程内部,默认共享Project的HTTP会话和认证上下文,所以无需额外配置就能自动带上认证信息;而VSTO插件默认的HTTP请求/CSOM上下文是独立的,需要主动关联Project的认证信息。

具体实现方案

1. ODATA调用(基于Bearer令牌)

利用Project Interop提供的GetProjectServerToken()方法获取当前登录用户的Bearer令牌,直接添加到请求头中:

using System.Net.Http;
using System.Net.Http.Headers;
using Microsoft.Office.Interop.MSProject;

// 获取当前Project应用实例
var projApp = Globals.ThisAddIn.Application;
// 获取已登录用户的Bearer令牌
string bearerToken = projApp.GetProjectServerToken();

// 初始化HttpClient并设置认证头
var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", bearerToken);

// 调用ODATA接口示例
var response = await httpClient.GetAsync("https://你的PWA站点地址/sites/pwa/_api/ProjectData/Projects");
response.EnsureSuccessStatusCode();
var result = await response.Content.ReadAsStringAsync();

2. CSOM调用(复用Bearer令牌)

通过给ProjectContext的请求事件添加认证头,实现复用已登录上下文:

using Microsoft.ProjectServer.Client;
using Microsoft.Office.Interop.MSProject;

var projApp = Globals.ThisAddIn.Application;
string pwaUrl = "https://你的PWA站点地址/sites/pwa";
string bearerToken = projApp.GetProjectServerToken();

// 初始化ProjectContext
var projContext = new ProjectContext(pwaUrl);
projContext.FormDigestHandlingEnabled = false;

// 给请求添加Bearer认证头
projContext.ExecutingWebRequest += (sender, e) =>
{
    e.WebRequestExecutor.RequestHeaders["Authorization"] = $"Bearer {bearerToken}";
};

// 执行CSOM操作示例
projContext.Load(projContext.Projects);
await projContext.ExecuteQueryAsync();

// 遍历项目列表
foreach (var project in projContext.Projects)
{
    // 处理项目数据
}

注意事项

  • GetProjectServerToken()方法仅支持Project Professional 2016及以上版本,且用户已成功登录到Project Online/Server;
  • 如果遇到令牌过期问题,可以在每次请求前重新获取令牌,或监听Project的登录状态变化事件重新获取。

内容的提问来源于stack exchange,提问作者supriya khamesra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 21:48:21