Excel和SharePoint列表:自动化基于声明的身份验证(传递un / pw)

时间:2017-12-28 20:42:53

标签: excel-vba sharepoint forms-authentication excel-2016 vba

我有一个SharePoint列表,该列表位于可通过基于声明的身份验证访问的SharePoint站点上(或者IT部门告诉我;我并不是100%熟悉详细信息)。

我正在尝试连接到Excel中的列表,并且每次都不需要身份验证以实现自动化。 (我习惯于建立与SQL数据源的连接,其中用户名和PW可以在连接字符串中传递,如果您知道在哪里查看,则无需手动进行身份验证,可能会暴露登录详细信息。)

IT给了我一个"虚拟" login / PW为此目的具有对列表的只读访问权限,并且与其他任何内容无关(出于安全原因)。我将使用Excel SharePoint数据源向导中的Microsoft帐户,然后选择“#34; Forms身份验证”,而不是使用Windows身份验证。"

我打开了Macro Recorder,使用Excel中的SharePoint列表数据源向导创建了与SharePoint列表的连接,使用虚拟登录/ PW成功验证,设计了感兴趣的查询,然后重新进入代码尝试逆向工程我需要的东西。

不幸的是,据我所知,UN / PW并没有以任何可见的方式通过Excel中的连接字符串或类似方式传递。

因此我陷入了需要手动验证自动报告运行的情况,这违背了自动化的目的。

有关如何克服这一障碍的任何建议?我对基于声明的身份验证系统(或一般身份验证)的细节不太熟悉,不知道我应该从哪里开始挖掘。

1 个答案:

答案 0 :(得分:0)

我无法找到自动访问SharePoint列表的方法。连接字符串架构似乎不支持传递纯文本UID / PW参数,并且我无法成功修改连接中的任何设置以使其无限期地进行身份验证。

可能的解决方法是在SharePoint服务器本身上设置PowerShell脚本。此脚本将删除包含列表内容的旧Excel文件,然后将列表内容导出到具有相同文件名的新文件。 this link的潜在代码示例,但我无法测试,IT对实施此解决方法不感兴趣。