gpt4 book ai didi

c# - 在 C# WPF 桌面应用程序中将 MSAL 与身份验证上下文结合使用

转载 作者:行者123 更新时间:2023-12-03 02:21:22 29 4
gpt4 key购买 nike

我们希望在桌面应用程序中使用 Azure AD ( https://techcommunity.microsoft.com/t5/azure-active-directory-identity/conditional-access-authentication-context-now-in-public-preview/ba-p/1942484 ) 的身份验证上下文功能,以便在使用应用程序的某些部分时触发条件访问。

文档提供了 Web API 和 Web 应用程序 ( https://github.com/Azure-Samples/ms-identity-dotnetcore-ca-auth-context-app/blob/main/README.md https://github.com/Azure-Samples/ms-identity-ca-auth-context/blob/main/README.md ) 的示例,但没有有关如何使用此功能保护桌面应用程序部分的文档。

在桌面应用程序 (c# WPF 4.8) 中,我们使用 MSAL 库 (4.35.1),但我们也没有找到任何选项/功能来使用应用程序内部的身份验证上下文。

是否有可能或有意在桌面应用程序中使用身份验证上下文,或者它是否针对 Web 场景?

最佳答案

您可以在任何平台上实现身份验证。没有平台限制。

获取 token :

对于桌面应用程序步骤几乎相同。您可以通过以下方式获取 token :

             authResult = await app.AcquireTokenInteractive(scopes)
.WithAccount(firstAccount)
.WithParentActivityOrWindow(new WindowInteropHelper(this).Handle) // optional, used to center the browser on the window
.WithPrompt(Prompt.SelectAccount)
.ExecuteAsync();

使用 token 访问资源:

var httpClient = new System.Net.Http.HttpClient();
System.Net.Http.HttpResponseMessage response;
try
{
var request = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, "https://graph.microsoft.com/v1.0/users");
//Add the token in Authorization header
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
response = await httpClient.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
return content;
}
catch (Exception ex)
{
return ex.ToString();
}

您可以从 here in official docs 下载示例应用程序

如果您需要任何进一步的帮助,请告诉我。

关于c# - 在 C# WPF 桌面应用程序中将 MSAL 与身份验证上下文结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68728972/

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