gpt4 book ai didi

asp.net - 让 AngularJS 与使用 Azure AD 保护的 .NET Web API 对话

转载 作者:行者123 更新时间:2023-12-03 05:09:11 25 4
gpt4 key购买 nike

我在 Microsoft Azure 上有两个不同的 Web 项目。一个项目是 .NET MVC Web 应用程序,另一个项目是 .NET Web API。

这两个项目都配置为使用 Azure AD。 MVC Web 应用程序能够获取 token 并使用它向 Web API 发出请求。以下是来自 MVC Web 应用程序的示例代码。

string userObjectID = ClaimsPrincipal.Current.FindFirst("http://schemas.microsoft.com/identity/claims/objectidentifier").Value;
AuthenticationContext authContext = new AuthenticationContext(Startup.Authority, new NaiveSessionCache(userObjectID));
ClientCredential credential = new ClientCredential(clientId, appKey);
result = authContext.AcquireTokenSilent(todoListResourceId, credential, new UserIdentifier(userObjectID, UserIdentifierType.UniqueId));

// Make a call against the Web Api
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, webApiBaseAddress + "/api/list");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", result.AccessToken);
HttpResponseMessage response = await client.SendAsync(request);

所以这段代码工作得很好。然而,我现在需要做的是直接从 AngularJS 应用程序调用 Web API。当我尝试这样做时,我收到 401 未经授权的错误。

我这样做的方法是向 AngularJS 发送的 HTTP GET 请求添加一个 header 。我将“Bearer”设置为我从 MVC 应用程序传递到页面的 result.AccessToken 值(上面的代码)。

显然这是行不通的。我想现在我的问题是我有什么选择?有没有官方或更好的方法来做到这一点?假设我想从标准 JavaScript 调用 Web API(让我们忘记 AngularJS 的复杂性)。有没有办法通过 Azure AD 进行身份验证?

最佳答案

为浏览器内 JS 应用程序获取 token 的规范方法是使用 OAuth2 隐式流。 Azure AD 目前尚未公开该流程,但请继续关注:我们正在努力实现该场景。尚无可分享的日期。

哈!五、

关于asp.net - 让 AngularJS 与使用 Azure AD 保护的 .NET Web API 对话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25675893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com