2011-09-15 97 views
1

我試圖連接到SalesForce Web服務並返回網頁中的一些數據。我對這個WSDL的東西很陌生。所以首先我創建了一個非常簡單的控制檯應用我只是想看看我能否連接到Web服務。這工作得很好。我能看到我們的表格並返回數據。WSDL的SalesForce Web服務 - 無效的登錄SOAP錯誤

接下來我使用了http://www.developer.com/net/net/salesforce-integration-with-.net-web-services-soap-api-.html上的優秀示例代碼。更改我的web.config設置爲我的,但是,我不斷收到下面的SOAP錯誤。

投擲:「INVALID_LOGIN:無效的用戶名,密碼,安全令牌或用戶鎖定。」 (System.Web.Services.Protocols.SoapException)Exception Message =「INVALID_LOGIN:Invalid username,password,security token; or user locked out。」,Exception Type =「System.Web.Services.Protocols.SoapException」

調試數據顯示正在發送正確的登錄憑證。它們與控制檯應用程序成功傳遞的憑據相同。

任何幫助將非常非常感激!或者如果任何人有另一個代碼示例,我對此也是開放的......

+0

控制檯應用程序還在工作嗎?想想,在您編寫控制檯應用程序後,該帳戶可能已被鎖定。 – GrandMasterFlush

回答

4

當通過API登錄(即不通過web應用程序)時,還有一些額外的安全措施。

您需要:

  • 從一個可信的IP地址(信任您的用戶的個人資料連接(見的個人資料詳細信息頁),或一般在組織(「安全控制 - >網絡接入」)

  • 安全令牌附加到你的密碼(從重置爲 「我的個人信息 - >重置安全令牌」)
2

如果您正在使用新的API(例如, 26.0),那麼登錄方法需要LoginScopeHeader參數。當調用由Visual Studio生成的SOAP代理,你需要撥打電話到login()傳遞null作爲參數爲LoginScopeHeader

SoapClient client = new SoapClient(); 

string username = "[email protected]"; 
string password = "password"; 
string securityToken = "xxxxxxxxxxxxxxxxxxxxxxxxx"; 

LoginResult loginResult = client.login(null, username, password + securityToken); 

當然,你需要確保你有API enabled設置(在配置文件)