首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

SVN 匿名 HTTP 訪問正常但客戶端 Checkout 需密碼:Windows 客戶端緩存/認證機制差異

     編輯:程式設計綜合問答

現象

瀏覽器訪問 https://code.marketcetera.org/root/trunk/ 無需認可,但 TortoiseSVN / 命令行 svn checkout 提示輸入用戶名密碼。

原因分析

  • 服務端配置:httpd.conf 中 Location 允許匿名 GET,但 REPORT、CHECKOUT 等 WebDAV 方法可能要求認證。
  • 客戶端差異:Windows SVN 客戶端(1.8+)默認嘗試發送認證頭,即使服務端允許匿名;Linux svn 1.6 則直接匿名成功。
  • 憑據緩存:Windows 憑據管理器可能存有舊憑據導致自動發送。

解決方案

  1. 使用 Linux/macOS 客戶端:svn checkout https://... 直接成功(驗證為客戶端問題)。
  2. Windows 清理憑據:控制面板 → 用戶賬戶 → 憑據管理器 → Windows 憑據 → 刪除該 SVN 域的條目。
  3. 命令行指定無認證:
    
      svn checkout --username="" --password="" --no-auth-cache https://...
      
  4. 服務端確認:檢查 httpd.conf 確保 LimitExcept GET PROPFIND OPTIONS REPORT 內無 Require valid-user。

結論

該倉庫 SVN 版本 1.8,Windows 客戶端 1.8 有認證行為差異,Linux 客戶端 1.6 正常匿名。更換客戶端或清理憑據即可。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved