如何在不与用户交互的情况下授权.NET 5.0 / C#应用程序与Microsoft 365 SharePoint Online交互?

布莱恩·凯斯勒

我需要创建一个Web服务,该服务将接受来自用户的文件,解析该文件以获取数据,组装存储在Sharepoint上的文件的集合,并将包含这些文件的zip文件返回给用户。用户可能没有直接访问Sharepoint的权限,将来甚至可能没有人类用户参与,因为该文件可能会在计时器上自动从另一个系统中拉出。

我正在用C#创建解决方案,并且正在努力创建可以成功针对Sharepoint进行身份验证的客户端。

当前,我正在尝试使用Microsoft文档中CSOM身份验证管理器,但是使用Visual Studio调试器时,我发现此方法失败:

        private async Task<string> AcquireTokenAsync(Uri resourceUri, string username, string password)
        {
            string resource = $"{resourceUri.Scheme}://{resourceUri.DnsSafeHost}";

            var clientId = defaultAADAppId;
            var body = $"resource={resource}&client_id={clientId}&grant_type=password&username={HttpUtility.UrlEncode(username)}&password={HttpUtility.UrlEncode(password)}";
            using (var stringContent = new StringContent(body, Encoding.UTF8, "application/x-www-form-urlencoded"))
            {

                var result = await httpClient.PostAsync(tokenEndpoint, stringContent).ContinueWith((response) =>
                {
                    return response.Result.Content.ReadAsStringAsync().Result;
                }).ConfigureAwait(false);

                var tokenResult = JsonSerializer.Deserialize<JsonElement>(result);
                var token = tokenResult.GetProperty("access_token").GetString();
                return token;
            }
        }

结果的值为:

“ {” error“:” unauthorized_client“,” error_description“:” AADSTS700016:在目录'enpal.de'中找不到标识符为'986002f6-c3f6-43ab-913e-78cca185c392'的应用程序。如果租户的管理员未安装该应用程序,或者该租户中的任何用户未同意该应用程序,则可能发生这种情况。您可能已将身份验证请求发送到错误的租户。\ r \ n跟踪ID:d3b47a0b-54bc-40fd-a731-b99732326200 \ r \ n相关ID:158621cc-3052-4c7b-9532-e2bab5c3cc09 \ r \ n时间戳:2020-11 -18 13:46:39Z“,” error_codes“:[700016],” timestamp“:” 2020-11-18 13:46:39Z“,” trace_id“:” d3b47a0b-54bc-40fd-a731-b99732326200“, “ correlation_id”:“ 158621cc-3052-4c7b-9532-e2bab5c3cc09”,“ error_uri”:“ https://登录。

resourceUri,用户名和密码值正确对应于我将直接用于登录网站的值。我的管理员向我保证,该用户是该站点的管理员,因此应具有执行任何操作(包括连接)所需的所有可能的权限。

有人知道如何进行这项工作吗?
还是知道其他更可能有效的解决方案?还是知道必须在SharePoint方面进行任何配置才能使此解决方案正常工作?

文森特

您似乎从Microsoft网站上获取了代码示例,而跳过了阅读重要部分的内容:在Azure AD中配置应用程序;)

目前,您正在尝试使用ID为'986002f6-c3f6-43ab-913e-78cca185c392'的应用程序连接到租户,该应用程序是代码示例中的占位符。在租户中注册您的应用,然后在defaultAADAppId常量中插入正确的应用ID

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不与用户交互的情况下授权.NET 5.0 / C#应用程序与Microsoft 365 SharePoint Online交互?

来自分类Dev

托管在 Azure 和 WebApi C# .Net Core 2.2 上的 React 应用程序上的 Sharepoint online/365 集成(上传文件)

来自分类Dev

Azure功能:与SharePoint Online交互的PowerShell脚本

来自分类Dev

Azure功能:与SharePoint Online交互的PowerShell脚本

来自分类Dev

在 SharePoint Online 上部署 ASP.NET 应用程序

来自分类Dev

Office任务窗格应用程序中的SharePoint Online(Office 365)登录表单

来自分类Dev

如何在没有用户交互的情况下安装Microsoft Edge扩展?

来自分类Dev

Office 365或SharePoint Online中的SPSecurityEventReceiver

来自分类Dev

如何在Sharepoint Online 2013(O365)上更新UserProfile属性

来自分类Dev

.NET应用程序与Google Chrome扩展程序的交互

来自分类Dev

使C#控制台应用程序与wpf交互

来自分类Dev

如何在Dynamics 365中添加子应用程序(使用asp.net mvc开发)?

来自分类Dev

使用 C#.net 从 Sharepoint Online 下载文件?

来自分类Dev

SharePoint CSOM:在Word Online(Office 365)中打开.docx文件

来自分类Dev

SharePoint CSOM:在Word Online(Office 365)中打开.docx文件

来自分类Dev

如何在ASP.NET MVC应用程序中为APPS附加sharepoint必需参数?

来自分类Dev

是否可以在没有HttpPlatformHandler的情况下托管ASP.Net 5应用程序?

来自分类Dev

Office 365 Outlook日历:如何在单个ASP.NET MVC应用程序中访问多个用户的日历?

来自分类Dev

Office 365 Outlook日历:如何在单个ASP.NET MVC应用程序中访问多个用户的日历?

来自分类Dev

DocuSign SharePoint Online应用

来自分类Dev

如何为Azure Active Directory Web应用程序配置Sharepoint Online权限

来自分类Dev

Google Play服务如何在没有用户交互的情况下在后台安装应用程序

来自分类Dev

Google Play服务如何在没有用户交互的情况下在后台安装应用程序

来自分类Dev

如何在不需要Microsoft帐户的情况下与外部用户共享SharePoint文件夹

来自分类Dev

SharePoint Online (Office 365) - SharePoint Designer 不允许保存文件

来自分类Dev

Sharepoint 365团队网站-用于业务同步的Ondrive-与OneDrive应用程序混淆

来自分类Dev

从Cordova混合移动应用程序检索O365 SharePoint列表

来自分类Dev

使用 Microsoft Graph 在没有任何用户交互的情况下获取电子邮件

来自分类Dev

在没有任何JavaScript知识的情况下,如何在PNaCl中编写C ++ HTML5应用程序?

Related 相关文章

  1. 1

    如何在不与用户交互的情况下授权.NET 5.0 / C#应用程序与Microsoft 365 SharePoint Online交互?

  2. 2

    托管在 Azure 和 WebApi C# .Net Core 2.2 上的 React 应用程序上的 Sharepoint online/365 集成(上传文件)

  3. 3

    Azure功能:与SharePoint Online交互的PowerShell脚本

  4. 4

    Azure功能:与SharePoint Online交互的PowerShell脚本

  5. 5

    在 SharePoint Online 上部署 ASP.NET 应用程序

  6. 6

    Office任务窗格应用程序中的SharePoint Online(Office 365)登录表单

  7. 7

    如何在没有用户交互的情况下安装Microsoft Edge扩展?

  8. 8

    Office 365或SharePoint Online中的SPSecurityEventReceiver

  9. 9

    如何在Sharepoint Online 2013(O365)上更新UserProfile属性

  10. 10

    .NET应用程序与Google Chrome扩展程序的交互

  11. 11

    使C#控制台应用程序与wpf交互

  12. 12

    如何在Dynamics 365中添加子应用程序(使用asp.net mvc开发)?

  13. 13

    使用 C#.net 从 Sharepoint Online 下载文件?

  14. 14

    SharePoint CSOM:在Word Online(Office 365)中打开.docx文件

  15. 15

    SharePoint CSOM:在Word Online(Office 365)中打开.docx文件

  16. 16

    如何在ASP.NET MVC应用程序中为APPS附加sharepoint必需参数?

  17. 17

    是否可以在没有HttpPlatformHandler的情况下托管ASP.Net 5应用程序?

  18. 18

    Office 365 Outlook日历:如何在单个ASP.NET MVC应用程序中访问多个用户的日历?

  19. 19

    Office 365 Outlook日历:如何在单个ASP.NET MVC应用程序中访问多个用户的日历?

  20. 20

    DocuSign SharePoint Online应用

  21. 21

    如何为Azure Active Directory Web应用程序配置Sharepoint Online权限

  22. 22

    Google Play服务如何在没有用户交互的情况下在后台安装应用程序

  23. 23

    Google Play服务如何在没有用户交互的情况下在后台安装应用程序

  24. 24

    如何在不需要Microsoft帐户的情况下与外部用户共享SharePoint文件夹

  25. 25

    SharePoint Online (Office 365) - SharePoint Designer 不允许保存文件

  26. 26

    Sharepoint 365团队网站-用于业务同步的Ondrive-与OneDrive应用程序混淆

  27. 27

    从Cordova混合移动应用程序检索O365 SharePoint列表

  28. 28

    使用 Microsoft Graph 在没有任何用户交互的情况下获取电子邮件

  29. 29

    在没有任何JavaScript知识的情况下,如何在PNaCl中编写C ++ HTML5应用程序?

热门标签

归档