我包括這在使用條款德爾福印的Sharepoint的Windows登錄
IdAuthentication
,
IdAuthenticationDigest
,
IdAuthenticationNTLM
,
IdAuthenticationSSPI
目前,我有代碼,這是否:
W.Request.BasicAuthentication := True;
W.Request.Username := AOptionsPtr^.AuthUsername;
W.Request.Password := AOptionsPtr^.AuthPassword;
如果我有機會獲得的OpenSSL:
TmpOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create;
TmpOpenSSL.SSLOptions.Method := sslvSSLv23;
TmpOpenSSL.SSLOptions.Mode := sslmClient;
TmpOpenSSL.SSLOptions.VerifyMode := [];
TmpOpenSSL.SSLOptions.VerifyDepth := 0;
//--
W.IOHandler := TmpOpenSSL;
從略讀WinINet的文檔(是的,我知道它是不Indy)似乎持久連接也需要認證。我想這也適用於Indy? URL: http://msdn.microsoft.com/en-us/library/windows/desktop/aa384220(v=vs.85).aspx
我需要得到這個工作與SharePoint。但是,問題在於我沒有Intranet SharePoint服務器要測試。因此,我無法逐句通過代碼,看看哪些是有效的,哪些沒有。但是,我有一個潛在客戶可以爲我測試它。
更重要的是,我需要做的就是上面的代碼使用Windows身份驗證(NTML?SPPI?)的SharePoint工作
威爾印自動測試和使用適當的auhentication?
我是否需要設置W.Request.BasicAuthentication := False;
以使自動驗證/檢測工作?
如果需要多個請求(第一個響應是401)我想在創建GET請求時我需要在自己的代碼中添加對此的支持? (要設置身份驗證模式,並作出新的要求?)
嗨雷米。感謝您的回答。我會試試看。如果我預先填寫用戶名/密碼,如果我理解正確,我不需要處理該事件? (假設我信任Indy選擇正確的身份驗證類型......我該怎麼做。)如果我仍然需要BasicAuthentication作爲備份,我應該將Request.BasicAuthentication設置爲false嗎? (請問Indy會自動將它用作備份驗證身份驗證與其他身份驗證不匹配) – Tom
您填寫的用戶/密碼值將用於初始身份驗證請求。如果服務器拒絕他們並再次請求認證,那麼可以通過OnAuthorization事件更改這些值,甚至可以選擇提示用戶輸入值。您必須將'BasicAuthentication'設置爲true才能啓用回退。 –
感謝您的澄清!:) – Tom