微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用SharePoint Online和CSOM .NET Standard更新用户配置文件的Azure功能使访问被拒绝

如何解决使用SharePoint Online和CSOM .NET Standard更新用户配置文件的Azure功能使访问被拒绝

我具有Azure Function v3,并且我想通过使用全局管理员帐户凭据来使用CSOM和.NET Standard 2.0更新Sharepoint用户配置文件属性。阅读有效。

df2 = df[::-1]
df['days_to_err'] = df2.groupby(['id',df2['has_err'].eq(1).cumsum()]).cumcount()

     id        date  info_a_cnt  info_b_cnt  has_err  days_to_err
0   123  2020-01-01         123          32        0            2
1   123  2020-01-02           2          43        0            1
2   123  2020-01-03          43           4        1            0
3   123  2020-01-04          43           4        0            3
4   123  2020-01-05          43           4        0            2
5   123  2020-01-06          43           4        0            1
6   123  2020-01-07          43           4        1            0
7   123  2020-01-08          43           4        0            0
8   232  2020-01-04          56           4        0            3
9   232  2020-01-05          97           1        0            2
10  232  2020-01-06          23          74        0            1
11  232  2020-01-07          91          85        1            0
12  232  2020-01-08          91          85        0            2
13  232  2020-01-09          91          85        0            1
14  232  2020-01-10          91          85        1            0

确切错误消息:System.Private.CoreLib:执行函数:FunctionName时发生异常。 Microsoft.SharePoint.Client.Runtime:访问被拒绝。您没有执行此操作或访问此资源的权限。

AuthenticationManager类取自here的MS文档 我正在使用Microsoft.SharePointOnline.CSOM v16.1.20518.12000 nuget程序包。

我制作了.NET Framework 4.7.2 Web应用程序,它使用SharePointOnlineCredentials可以工作。但是我想知道如何在.NET Standard 2.0上运行它。

解决方法

根据我过去的经验和几个小时的研究:

使用Azure AD应用程序时,您可以阅读用户配置文件-但不能执行CSOM写入操作。

参考: enter image description here

尽管article说它仅适用于使用仅应用程序,但通常在Azure AD应用程序(用户+应用程序)中也观察到此行为-因此,您能够阅读但无法阅读的原因写。

如文章中所述,您将只能使用 Sharepoint App 上下文并执行读/写操作。

context = new AuthenticationManager().GetAppOnlyAuthenticatedContext(siteUrl,"[Your Client ID]","[Your Client Secret]")

这里的身份验证管理器是SharepointPNPcoreOnline库的。

enter image description here

article的详细信息相同。

如果您希望在执行相同操作时希望获得用户上下文(通常不需要,因为您是在UPA上执行)-您可以相应地创建应用程序-但实际上不确定SharepointPNPCOreOnline是否支持此操作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。