AuthenticationContex 缺少方法 AcquireToken 和 CreateAuthorizationHeader

AuthenticationContex missing method AcquireToken and CreateAuthorizationHeader

我尝试使用 Azure AD。

这是我使用的代码:

Add-Type -Path      "D:\GraphAPI\Microsoft.IdentityModel.Clients.ActiveDirectory.2.14.201151115\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll" 


# Change these three values to your application and tenant settings
$clientID = "CLIENT ID for application"
$clientSecret = "KEY for application"
$tenant = "tenant domain name"

# Static values
$resAzureGraphAPI = "https://graph.windows.net";
$serviceRootURL = "https://graph.windows.net/$tenant"
$authString = "https://login.windows.net/$tenant";

# Creates a context for login.windows.net (Azure AD common authentication)
  [Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext]$AuthContext = [Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext]$authString

# Creates a credential from the client id and key
[Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential]$clientCredential = New-Object -TypeName "Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential"($clientID, $clientSecret)

# Requests a bearer token
$authenticationResult = $AuthContext.AcquireTokenAsync($resAzureGraphAPI,     $clientCredential);

# Output the token object
Write-Host -ForegroundColor Yellow "Token object:"
$authenticationResult | Format-List

# Example to get all users
Write-Host -ForegroundColor Yellow "Getting all users"
$users = Invoke-RestMethod -Method GET -Uri "$serviceRootURL/users?api-version=1.5" -Headers @{Authorization=$authenticationResult.CreateAuthorizationHeader()} -ContentType "application/json"
$users.value | Format-Table UserPrincipalName,DisplayName

但是我有两个错误

方法调用失败,因为 [Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContex] 不包含名为“AcquireToken”的方法

方法调用失败,因为 [Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContex] 不包含名为“CreateAuthorizationHeader”的方法

你能帮我解决这个错误吗?

谢谢你的帮助

斯蒂芬

抱歉回复晚了,我刚才遇到了同样的问题并发现了你的问题。我注意到在 Microsoft.IdentityModel.Clients.ActiveDirectory.XML 版本 3.10.305231913(最新)中,这些方法完全缺失,还有一些其他方法。我通过以下方式获取了版本 2.26.305102204:

.\nuget.exe install Microsoft.IdentityModel.Clients.ActiveDirectory -Version 2.26.305102204

在这个旧版本中一切似乎都已到位。

https://www.nuget.org/packages/microsoft.identitymodel.clients.activedirectory/2.19.208020213

所有者已取消列出此包。这可能意味着该软件包已被弃用或不应再使用。

版本不存在..

string token =authContext.AcquireTokenAsync(resourceUri, clientID, new Uri(redirectUri), new PlatformParameters(0)).Result.AccessToken;

有关以下内容的更多信息 link:- https://github.com/Microsoft/PowerBI-CSharp/issues/32