我試圖連接的Web服務的作者告訴我,我發送到他們的Apache Web服務器的webdav模塊的用戶名是在頭部沒有encoding = utf-8的情況下進入的,預期mime64編碼用於標題,因此,上載用戶的可以包含unicode字符的用戶標識不被接受和解碼。Indy 10 TIdWebDav是否支持用戶名中包含unicode字符的用戶的身份驗證?
我想知道的是,我可以以某種方式在TidWebDAV中設置一個屬性,它將改變HTTP編碼的方式,從而允許驗證包含無法顯示unicode字符的用戶名以簡單的ascii。我想也許AuthenticationManager屬性可能與它有關。在indy 9文件中,它說「這個屬性什麼都不做」。它在Indy 10中做了些什麼?它看起來像已經實施。
謎我還不知道包括:
(1)什麼是「logintype」(整數值)的WebDAV做的,什麼樣的價值觀我將它設置爲?目前我的代碼將其設置爲3.
(2)我是否需要使用hoForceEncodeParams強制編碼params?
(3)如何檢查遠程端會看到它們的表單中的標題?
更新:正如remy所說,NTLM身份驗證支持unicode字符。我還發現你可以在「用戶名:密碼」表單中使用基本身份驗證中的unicode utf8 mime(base64)編碼字符串。
WebDav模塊是在Apache Httpd中運行的標準webdav模塊。實際上它看起來已經被修改了一些,或者有插件插入到這個插件中。我將在明天詳細瞭解遠程端(即C/C++)。 – 2011-03-18 00:43:50
我認爲'logintype'可能是特定於這個略有修改的webdav模塊的實現細節。 – 2011-03-18 00:44:52
我編輯的答案,而不是昨天的問題是否有可能撤消呢? – 2011-03-19 13:26:55