0

作为一个整体,我对 c# 很陌生,我正在尝试使用 Microsoft Dataverse Web API 来获取和发布请求。这适用于我使用 .Net Framework 的控制台应用程序,但不适用于使用 .NET Core 的控制台应用程序,除非有其他不使用 .NET Core 的 echo bot 模板,否则我需要使用它?

这是 Visual Studio 中可供我使用的机器人列表

我根据 MS 文档获得了这些模板,该文档是关于使用 .NET 的 Bot Framework SDK 创建机器人的。

这是在 .NET Core 中给我带来问题的代码行:

var userCredential = new UserCredential(userName, password);
string apiVersion = "9.0";
string webApiUrl = $"{url}/api/data/v{apiVersion}/";

//Authenticate using IdentityModel.Clients.ActiveDirectory
var authParameters = AuthenticationParameters.CreateFromResourceUrlAsync(new Uri(webApiUrl)).Result;
var authContext = new AuthenticationContext(authParameters.Authority, false);
var authResult = authContext.AcquireToken(url, clientId, userCredential);
var authHeader = new AuthenticationHeaderValue("Bearer", authResult.AccessToken);

给我一个问题的尤其是这些行:

var userCredential = new UserCredential(userName, password);
var authParameters = AuthenticationParameters.CreateFromResourceUrlAsync(new Uri(webApiUrl)).Result;
var authResult = authContext.AcquireToken(url, clientId, userCredential);

这是由于 .NET Core 和 AcquireToken 不支持 UserCredential。对于 AuthenticationParameters.CreateFromResourceUrlAsync,它说“非静态字段、方法或属性‘AuthenticationParameters.CreateFromResourceUrlAsync(Uri)’需要对象引用”

有没有办法在.NET Core 中做到这一点,或者这是不可能的?我正在尝试获取访问令牌,然后将其添加到 http 请求的标头中。只是想看看 .NET Core 中是否有办法做到这一点。

谢谢你。

4

0 回答 0