【发布时间】:2020-02-04 07:50:56
【问题描述】:
我想从 ASP.NET MVC 应用程序的 控制器 发送请求,该应用程序部署在 Microsoft Azure Cloud Active Directory 上并从仍然部署在 Microsoft Azure Cloud Active Directory 上的服务接收响应。
为此,我下载了一个您可以从here 看到的示例并为自己定制。我的行为的详细文档包含在同一链接中。
当我在我的 Azure 门户上测试服务和 Web 应用程序时,我在标题中遇到了错误消息:
无法静默获取令牌,因为在缓存中未找到令牌。 调用方法 AcquireToken
发生错误的地方是我的控制器中的以下部分:
ClientCredential credential = new ClientCredential( clientId, appKey );
result = await authContext.AcquireTokenSilentAsync( todoListResourceId, credential, new UserIdentifier( userObjectID, UserIdentifierType.UniqueId ) );
clientId:我在 Azure AD 上安装的 Web 应用程序的标识符(例如:c95d45dd-ba7f-41be-a995-1db604afff32)
appKey:我的 Web 应用程序在门户中的隐藏键值
todoListResourceId:我在 Azure AD 上安装的 API 应用程序的标识(例如:4cfebcb4-6f2e-4eeb-84f2-4220f65774ed)
userObjectID:以下代码返回的值
string userObjectID = ClaimsPrincipal.Current.FindFirst( "http://schemas.microsoft.com/identity/claims/objectidentifier" ).Value;
即在浏览器中在线的用户的值。正如我的 GitHub 链接上的文档中所述,此值不是我在登录 Azure 门户时使用的 Microsoft 帐户,而是我在 Azure Active Directory 中注册的用户的值
之前已经讨论过和这个话题类似的话题here回答了,但是这个回答并没有解决我的问题。
我已经工作了好几天了,但是我没有得到 GET、POST、PUT、 的回复>DELETE 服务中的方法。我一直在处理标题中的错误。我在等你的帮助。
【问题讨论】:
-
显示您的整个程序。您遇到了身份验证问题。
-
整个项目位于问题中的 GitHub 链接上。
-
问题必须是独立的。外部链接中断、被删除等。阅读此链接并更新您的问题。 stackoverflow.com/help/minimal-reproducible-example
-
链接上的账号是我自己的账号。这就是我要分享的代码。没有什么了。我已经尝试解决这个问题好几天了,但我的时间不多了。
-
@JohnHanley 我需要分享整个程序吗?当我调用 AcquireTokenSilentAsync 方法时,我得到了那个错误。这就是问题所在。其他任何地方都没有。我还提到了我在方法中获得参数的位置。你说这是身份验证问题。我把方法叫错了吗?我需要在门户端进行配置吗?这就是我想知道的全部。
标签: asp.net-mvc azure asp.net-web-api azure-active-directory azure-cloud-services