当我直接在我同时登录Kentico 8.2管理站点的浏览器中加载它时,此REST请求有效:
https://www.example.com/rest/CMS.SettingsKey
现在,我需要使用PowerShell 5返回相同的结果。我尝试了以下各种版本:
$url = "https://www.example.com/rest/CMS.SettingsKey"
$httpMethod = "Get"
$credentialsBytes = [System.Text.Encoding]::UTF8.GetBytes("username:password")
$credentialsEncoded = [System.Convert]::ToBase64String($credentialsBytes)
$headers = @{}
$headers.Add("Authorization", "Basic $($credentialsEncoded)")
$settings = (Invoke-RestMethod -Uri $url -Method $httpMethod -headers $headers)
Write-Host $settings
请注意"用户名"和#34;密码"是用于登录管理站点的相同凭据(当REST请求在浏览器中工作时),并且用户是全局管理员。
PS片段给出了403 Forbidden错误。我关注了this page和this page,但我无法让它发挥作用。我做错了什么?
编辑:
我启用了REST服务,但现在我收到了401 Unauthorized错误。同样,用户是全局管理员。我感觉标题没有被包含在请求中(或者标题有问题),因为如果我生成一个哈希并使用哈希参数身份验证而不是基本身份,那么相同的请求可以起作用(来自PowerShell)认证。我按照评论中的建议尝试使用Fiddler,但我是新手,而且我现在没有时间深入潜水。
答案 0 :(得分:1)
刚刚使用最新的修补程序版本(9.0.32和8.2.48)进行了测试,它运行正常。
<modules runAllManagedModulesForAllRequests="true">
,如here所述。