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
我尝试使用 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