我有一个面向公众的ASP.NET站点,它没有任何身份验证/授权。它严格来说是一个包含匿名用户信息的外部站点。我试图在安全的SP2013站点中调用列表/库数据并在ASP.NET站点上呈现列表/库项目。 SP2013 Web应用程序与ASP.NET站点位于同一服务器和域中,并且两个站点都在同一IIS实例下运行。
据我所知,我必须使用跨域库来实现这一点,因为我希望使用匿名用户使用客户端代码(即JavaScript / JQuery)。我认识到使用服务器端对象模型是另一种方法,我正在利用C#来实现某些功能。无论如何,我遇到麻烦,SP.RequestExecutor说我没有定义App Web URL。我很难找到如何设置它的文档。而且挑战还在于我真的不想在查询字符串中使用appweburl和hosturl(如果可能的话)。如果有另一种方法可以做到这一点,我会对它开放。我真的想利用REST API并使用服务帐户执行JS代码(理论上)。
答案 0 :(得分:1)
您正在使用客户端代码采用正确的方法,但由于SharePoint 2013的安全模型,还需要一些额外的步骤。您将创建的内容视为外部托管的SharePoint应用程序。您的应用程序无法匿名向SharePoint 2013进行身份验证;它必须具有SharePoint可以为其分配权限的标识。
访问"安全SP2013网站内的任何列表"您的代码必须配置一个应用程序(它将驻留在应用程序URL),以便SharePoint可以交换安全令牌。您可以选择使用Azure作为访问控制提供程序,也可以使用应用程序创建STS信任。设置完成后,应用程序必须被安装到SharePoint所需的权限(在这种情况下是对列表的读访问权限),并且只能由拥有至少权限级别的人员安装。该应用所需的列表。
有关安全模型的分步演练,我建议使用Scott Hillier关于SharePoint 2013应用程序开发的书籍Microsoft SharePoint 2013 App Development (Developer Reference)。