我在Azure上使用ASP.NET MVC部署了SharePoint提供程序托管应用程序。因为我们选择使用AngularJS,所以我们也添加了ASP.NET Web API控制器。我们已经设法通过cookie共享来自MVC控制器的令牌信息在API控制器中创建SharePoint客户端上下文(API控制器操作具有SharePointApiContextFilter,就像MVC控制器具有SharePointContextFilter来处理SharePoint客户端上下文创建一样)。 / p>
我添加了一个用于报告目的的OData控制器,它将数据导出到Excel(通过Excel的OData数据Feed导入)。我想让这个控制器在线验证SharePoint。 Excel已经实现了此功能,因为我尝试通过REST从SharePoint库导入数据。
使用Fiddler,我注意到SharePoint在线返回带有身份验证质询(WWW-Authenticate)标头的401响应:
WWW-Authenticate:IDCRL Type =" BPOSIDCRL", 端点=" /sites/Test/_vti_bin/idcrl.svc /&#34 ;, RootDomain =" sharepoint.com",政策=" MBI"
这是完整的回复:
HTTP / 1.1 401 Unauthorized Cache-Control:private,max-age = 0 Content-Length:0 Content-Type:application / xml; charset = utf-8 Expires: 星期二,07 Jul 2015 07:34:08 GMT Last-Modified:Wed,22 Jul 2015 07:34:08 GMT服务器:Microsoft-IIS / 8.5 X-SharePointHealthScore:0 X-MSDAVEXT_Error:917656; 访问+拒绝。+前+开放+文件+在+这个+位置%2C +你必须+ + +首先浏览+至+ +的网络+现场+和+选择+的+选项+到+登录+自动。 DATASERVICEVERSION:3.0 X-AspNet-Version:4.0.30319 SPRequestGuid: be6d1c9d-806b-2000-20ed-4d42443d8365 request-id: be6d1c9d-806b-2000-20ed-4d42443d8365 X-FRAME-OPTIONS:SAMEORIGIN X-Powered-By:ASP.NET MicrosoftSharePointTeamServices:16.0.0.4121 X-Content-Type-Options:nosniff X-MS-InvokeApp:1; RequireReadOnly P3P:CP ="所有IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo 我们的SAMO CNT COM INT NAV ONL PHY PRE PUR UNI" WWW-Authenticate:IDCRL 输入=" BPOSIDCRL",EndPoint =" /sites/Test/_vti_bin/idcrl.svc /", RootDomain =" sharepoint.com",Policy =" MBI"日期:2015年7月22日星期三 07:34:08 GMT
有人可以告诉我如何在OData控制器中构建这种类型的响应(可能通过自定义动作过滤器)吗?