我正在使用MS Dynamics的OData api。这里我们使用oauth进行身份验证
我正在使用Web Api,所以我们遵循以下参考。
我们遵循的步骤:
1 即可。向Microsoft Azure注册了一个应用程序:
2 即可。使用ADAL.js获取令牌。 - 尝试使用ADAL C#sdk但由于登录窗口的对话框无法弹出到Asp.Net Core Web Api项目中而失败。
要生成令牌,我们只使用ApplicationId,ResourceUrl(动态资源网址)。
第3 即可。将Bearer令牌传递给其余的api。它奏效了。
需要:如果令牌过期,我们必须刷新令牌。我们尝试使用在文档中指定的c#ADAL SDK。
AuthenticationContext authContext =
new AuthenticationContext("https://login.windows.net/common/", false);
AuthenticationResult result = await authContext.AcquireTokenAsync(resource, clientId, new Uri(redirectUrl), new PlatformParameters());
例外:未实施方法或操作。
在 Microsoft.IdentityModel.Clients.ActiveDirectory.Internal.Platform.WebUIFactory.CreateAuthenticationDialog(IPlatformParameters 参数)
您能指导我们,我们如何在Web Api(Asp.net Core)中刷新令牌。我们如何才能在MS Dynamics OAuth中获得refresh_token。您是否有其他方法可以访问令牌/刷新令牌?
注意:我们只允许从html页面登录oauth对话框一次并存储给定的令牌。我们必须使用相同的令牌来生成新令牌或任何其他方式来刷新令牌(第二次没有提示对话框)以在MS Dynamics OData Web Api中使用。 我正在使用Asp.net Core Web API Project来执行动态之间的交互。
答案 0 :(得分:0)
用法:
AuthenticationResult authenticationResult = authenticationContext.AcquireTokenAsync(ClientConfig.CRMOrgUrl,clientcred)。结果;
参考: