OneDrive用于商业Oauth2认证
本文关键字:Oauth2 认证 用于 OneDrive | 更新日期: 2023-09-27 18:03:22
我正在尝试使用OAuth2.0认证协议访问OneDrive for Business。我遵循了这个例子:http://msdn.microsoft.com/EN-US/library/dn605894 (v = office.15) . aspx这是目前为止的代码:
// Create an authentication context
AuthenticationContext ac = new AuthenticationContext(string.Format("https://login.windows.net/{0}",
ClaimsPrincipal.Current.FindFirst(TenantIdClaimType).Value));
String id = ClaimsPrincipal.Current.FindFirst(TenantIdClaimType).Value;
// Create a client credential based on the application id and secret.
ClientCredential clcred = new ClientCredential(AppPrincipalId, AppKey);
// Using the authorization code acquire an access token.
var arAD = ac.AcquireTokenByAuthorizationCode(code, new Uri(appRedirect), clcred);
我得到一个授权码是畸形的错误。我不明白为什么我收到这个消息。
任何帮助将不胜感激!
有同样的问题,当我试图手动获得授权代码,然后从控制台应用程序使用它。不知道为什么对我不起作用。
但是当我从Web应用程序中使用它时,执行授权并返回接收代码的相同应用程序(因为我将其指定为returnURL) -一切都有效。
我建议你看一下这个例子
https://github.com/AzureADSamples/WebApp-WebAPI-OAuth2-UserIdentity-DotNet还有这篇文章来理解好下面发生了什么:
http://blogs.msdn.com/b/exchangedev/archive/2014/03/25/using - oauth2 -访问日历-接触- - - -邮件- api - -交流-网络-中-办公室- 365. - aspx
注:这不是一个OneDrive,但我有完全相同的问题,所以如果你能使它与Exchange或GraphApi工作,那么它应该为OneDrive工作。
授权码格式错误,如果发送的授权码格式不正确,将导致错误。可能是您发送的授权码是authcode和会话状态的编码值。您需要分隔两个值并只发送验证码。或者解码验证码和会话状态之间的'&'符号(分隔符),并将它们作为两个参数发送。
ADAL4j中的方法AcquireTokenByAuthorizationCode(…)只接受authcode。