OneDrive API浏览器C#

时间:2016-11-23 00:11:05

标签: c# api onedrive

好吧所以我决定将onedrive功能集成到我的项目中,我已按照此处列出的说明操作: https://github.com/OneDrive/onedrive-sample-apibrowser-dotnet

我已经设置了需要设置的变量,更新了所有nuget库,注册了应用程序并设置了读写等所需的权限。

private const string AadClientId = "6b18d325-####-####-####-##########b0";
private const string AadReturnUrl = "http://localhost:44313";
private const string MsaClientId = "6b18d325-####-####-####-##########b0";

一切似乎都在努力达到最终登录点。该项目编译,我点击"登录aad" 我知道这部分是正确的,因为登录页面出现时我的注册应用程序标题在登录框上方。 正确输入详细信息并通知您它正在登录重定向您并继续使用标题"继续"空白页面,所有内容似乎都设置正确并且正在进行中但是它会遇到障碍并返回一个消息框"身份验证失败",详细说明如下: AADSTS50001:在名为9188040d的租户中找不到名为http://localhost:44313的应用程序 - #### - #### - #### - ########## ad。如果租户的管理员尚未安装应用程序或租户中的任何用户同意该应用程序,则会发生这种情况。您可能已将您的身份验证请求发送给错误的租户。

我读过,我可能需要在AzureAD中做一些事情,但我不确定,从来没有对一个驱动器做过任何事情,所以任何协助帮我解决这个问题都会很棒!

谢谢各位赞赏! 问候 詹姆斯

2 个答案:

答案 0 :(得分:0)

在Microsoft注册门户上注册应用程序使其可以访问OneDrive的消费者版本(在演示中,您可以通过“登录MSA”访问它) - 除非您已设置,否则应该可以使用该版本MsaReturnUrl为localhost(在这种情况下,将其更改为样本中最初的那个)。您将能够使用您的Live ID登录并访问OneDrive数据。

业务版本使用您在Azure上自行设置的Azure Active Directory。一旦你有了,那么你将注册你的应用程序,添加用户,访问ClientId,你最终需要将其放入代码中。

这可能超出了这个问题的范围 - 如果您只想使用个人OneDrive帐户,请使用MsaAuthenticationProvider,不要担心这些Aad...属性和{{1} }。

答案 1 :(得分:0)

您在这里。只需单击几下即可在Azure门户中创建应用程序和机密。 https://developer.microsoft.com/en-us/graph/quick-start

请选择您要创建的应用程序的类型。 下一步单击会自动创建,以代表我们在azure门户中创建应用程序。

 IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
       .Create(ClientId)
       .WithTenantId(TenantID)
       .WithClientSecret(ClientSecret)
       .Build();

        ClientCredentialProvider authProvider = new **ClientCredentialProvider**(confidentialClientApplication);
        GraphServiceClient _graphClient = new GraphServiceClient(authProvider);

请相应地更改身份验证提供程序。当前是用于验证应用程序身份的(在Azure中针对应用程序秘密生成)。