如何使用PowerShell获取.htaccess与.htpasswd保护的内容?
修复PowerShell访问.htpasswd保护内容的代码问题
你的代码存在两处关键错误,导致无法完成Basic认证访问受保护内容:
- 第一处:
[Text.Encoding]::ASCII.GetBytes()方法调用缺少闭合括号,字符串格式化后的表达式未正确闭合 - 第二处:Authorization请求头构造错误,错误拼接了用户名与Base64凭证,而Basic认证仅需Base64编码的
用户名:密码字符串
修正后的代码如下:
$username = 'test' $password = 'test' # 正确构造Base64编码的认证信息,补全缺失的闭合括号 $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password))) # 正确设置Authorization头,格式为Basic + 空格 + Base64凭证 $response = Invoke-RestMethod -Uri 'http://url' -Headers @{Authorization = "Basic $base64AuthInfo"} $response
关键说明
- Basic认证的核心逻辑是将
用户名:密码的字符串用ASCII编码后转换为Base64格式,无需额外拼接用户名 - 请将代码中的
http://url替换为实际的目标资源地址,确认目标服务器确实启用了基于.htpasswd的Basic认证
内容的提问来源于stack exchange,提问作者iSteffen
相关产品推荐
相关产品推荐

