C# OneDrive用于业务Oauth2身份验证
我正在尝试使用OAuth2.0身份验证协议访问OneDrive for Business。我举了一个例子: A这是我目前的代码:C# OneDrive用于业务Oauth2身份验证,c#,ms-office,onedrive,C#,Ms Office,Onedrive,我正在尝试使用OAuth2.0身份验证协议访问OneDrive for Business。我举了一个例子: A这是我目前的代码: // Create an authentication context AuthenticationContext ac = new AuthenticationContext(string.Format("https://login.windows.net/{0}", ClaimsPrincipal.Current.
// 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)——一切正常 我建议你看看这个例子 这篇文章也是为了了解在好的环境下发生了什么: 附言。
它不是OneDrive,但我遇到了完全相同的问题,因此如果您可以使它与Exchange或GraphApi一起工作,那么它也应该适用于OneDrive。授权代码格式不正确。如果您以不正确的格式发送授权代码,则会发生错误。可能是您正在发送的授权码是authcode和会话状态的编码值。您需要分离这两个值并只发送验证代码。或者解码身份验证代码和会话状态之间的“&”符号(分隔符),并将其作为两个参数发送
从ADAL4j获取TokenByAuthorizationCode(…)的方法只接受authcode。请不要将您的问题标记为已解决。相反,用你的解决方案发布一个答案,并接受这个答案。现在你删除了它,这是非常混乱的…嗨,真的很抱歉的混乱。我用Java实现了这个问题。我使用HttpClient 3.1 Post方法获取授权代码、访问权和刷新令牌。我再次为这一混乱感到抱歉。