Dynamics crm 如何在MS Dynamics中扩展令牌
我正在使用以下代码对Dynamics进行身份验证:Dynamics crm 如何在MS Dynamics中扩展令牌,dynamics-crm,dynamics-crm-webapi,Dynamics Crm,Dynamics Crm Webapi,我正在使用以下代码对Dynamics进行身份验证: public async Task<String> GetAuthenticationToken(string uri, string clientId, string clientSecret) { AuthenticationParameters ap = AuthenticationParameters.CreateFromResourceUrlAsync(new Uri(uri)).Result; var creds =
public async Task<String> GetAuthenticationToken(string uri, string clientId, string clientSecret)
{
AuthenticationParameters ap =
AuthenticationParameters.CreateFromResourceUrlAsync(new Uri(uri)).Result;
var creds = new ClientCredential(clientId, clientSecret);
AuthenticationContext authContext = new AuthenticationContext(ap.Authority);
AuthenticationResult result = await
authContext.AcquireTokenAsync(ap.Resource, creds);
return result.AccessToken;
}
问题是我不知道如何刷新令牌以便继续工作。我可以打一个简单的电话,让它再延长一个小时吗?你可以这样做,对代码没有100%的把握,还没有测试过
private static string GetToken(TraceWriter log)
{
lock (tokenlock)
{
if (DateTime.UtcNow >= ExpireDate)
{
var clientcred = new ClientCredential(clientId, clientSecret);
AuthenticationContext authContext = new AuthenticationContext(aadInstance, false);
AuthenticationResult result = authContext.AcquireToken(organizationUrl, clientcred);
token = result.AccessToken;
ExpireDate = result.ExpiresOn.DateTime;
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
}
return token;
}
}
您使用.NET的web api有什么特殊原因吗?
private static string GetToken(TraceWriter log)
{
lock (tokenlock)
{
if (DateTime.UtcNow >= ExpireDate)
{
var clientcred = new ClientCredential(clientId, clientSecret);
AuthenticationContext authContext = new AuthenticationContext(aadInstance, false);
AuthenticationResult result = authContext.AcquireToken(organizationUrl, clientcred);
token = result.AccessToken;
ExpireDate = result.ExpiresOn.DateTime;
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
}
return token;
}
}