带有 CSOM 的 Project Server 2013 Webpart

Project Server 2013 Webpart with CSOM

我想创建一个 Web 部件来显示来自 Project Server 2013 的信息。这样我就可以在 Project Server 的新页面上实现我的 Web 部件。

我的方法是创建 SharePoint 2013 Webpart 并使用 Microsoft.ProjectServer.Client.dll

private void GetProjectsListData()
    {
        context = new ClientContext(pwaPath);
        projSvr = new ProjectServer(context);

        context.Load(projSvr.Projects);
        context.ExecuteQuery();

        gdvProjectsList.DataSource = projSvr.Projects;
        gdvProjectsList.DataBind();
    }

但是我收到 401 身份验证错误。我认为 SP 使用 IIS 应用程序池用户而不是我的用户。 如果我在控制台应用程序中使用 CSOM,它就可以正常工作。

这是执行此操作的正确方法还是我应该使用 PSI?或者我如何模拟告诉 CSOM 使用另一个用户?

根据您已经发现的事实,SP ClientContext 在 IIS App Pool 帐户下工作是不可能的。对于 OnPremise 场解决方案,无法让 CSOM 与当前用户一起工作,希望您可以提供用户名和密码(但我认为这不是解决方案)。

我更愿意使用 PSI 或 JSOM。两者都在为我工作。 REST 和 OData 报告提要也工作正常,但 OData 提要返回所有数据。