我正在尝试在没有当前用户的情况下获取该应用程序的令牌。我收到一条错误消息:
e.Message =“由于无法在缓存中找到令牌,因此无法静默获取令牌。调用方法AcquireToken”
下面是我用来获取令牌的代码。
ClientCredential clientcred = new ClientCredential(clientId, appKey);
AuthenticationContext authenticationContext = new AuthenticationContext(aadInstance + tenantId);
AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenSilentAsync(graphResourceID, clientId);
return authenticationResult.AccessToken;
我的版本是:
有人可以帮忙吗,我已经尝试了好几天了...我可以得到一个令牌,只是在为当前用户获取令牌时才找到,但是当我有后台处理程序时,例如从应用程序发送未经身份验证的电子邮件用户我无法获得令牌。
我的应用程序注册下的Microsoft Graph“应用程序-从任何用户发送电子邮件”的安全性设置,但我认为这还没有实现。 Windows Azure AD的安全已委派-登录并阅读用户配置文件。
谢谢
答案 0 :(得分:0)
我已经弄清楚了令牌部分。因此,对于正在寻找此google的其他任何人,创建一个X509证书并将其添加到您的Azure清单中。然后,您可以使用x509证书创建ClientAssertionCertificate。然后在对AuthenticationContext.AcquireTokenAsync的调用中使用clientassertion。这似乎有效。我可以创建一个graphServiceClient。但是,当我尝试发送电子邮件时,出现权限错误:
用于提交此请求的用户帐户无权代表指定的发送帐户发送邮件。无法提交消息。
尽管具有权限应用程序-以任何用户身份发送邮件。有人有什么想法吗?