WSDL 的 SalesForce Web 服务 - 无效的登录 SOAP 错误

Posted

技术标签:

【中文标题】WSDL 的 SalesForce Web 服务 - 无效的登录 SOAP 错误【英文标题】:SalesForce Web Service By WSDL - Invalid Login SOAP Error 【发布时间】:2011-09-15 14:24:59 【问题描述】:

我正在尝试连接到 SalesForce Web 服务并在网页中返回一些数据。我是这个 WSDL 的新手。所以首先我创建了一个非常简单的控制台应用程序。我只是想看看我是否可以连接到网络服务。那工作得很好。我能够看到我们的表格并返回数据。

接下来我在http://www.developer.com/net/net/salesforce-integration-with-.net-web-services-soap-api-.html 使用了EXCELLENT 示例代码。将我的 web.config 设置更改为我的等。但是,我不断收到以下 SOAP 错误。

抛出:“INVALID_LOGIN:用户名、密码、安全令牌无效;或用户被锁定。” (System.Web.Services.Protocols.SoapException) 异常消息 = "INVALID_LOGIN: 用户名、密码、安全令牌无效;或用户被锁定。",异常类型 = "System.Web.Services.Protocols.SoapException"

调试数据显示正在发送正确的登录凭据。它们与控制台应用程序成功传递的凭据相同。

任何帮助将非常非常非常感谢!!!!或者如果有人有另一个代码示例,我也对此持开放态度......

【问题讨论】:

控制台应用还能用吗?想来想去,可能是你写了控制台应用,账号就被锁了。 【参考方案1】:

通过 API 登录(即不通过网络应用)时,有一些额外的安全措施。

您需要:

从受信任的 IP 地址连接(在您的用户个人资料中受信任(请参阅个人资料详细信息页面)或通常在组织中(“安全控制 --> 网络访问”)进行连接

将您的安全令牌附加到您的密码(从“我的个人信息 --> 重置安全令牌”中重置它)

【讨论】:

【参考方案2】:

如果您使用的是新的 API(例如 26.0),那么登录方法需要一个 LoginScopeHeader 参数。调用 Visual Studio 生成的soap代理时,您需要调用login() 传递null 作为LoginScopeHeader 的参数:

SoapClient client = new SoapClient();

string username = "user@salesforce.com";
string password = "password";
string securityToken = "xxxxxxxxxxxxxxxxxxxxxxxxx";

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

当然,您需要确保您有API enabled 设置(在配置文件中)

【讨论】:

以上是关于WSDL 的 SalesForce Web 服务 - 无效的登录 SOAP 错误的主要内容,如果未能解决你的问题,请参考以下文章

.NET Core 3.1 通过 Web Service 读写 Salesforce 数据

salesforce wsdl 生成 jar 包

从 WSDL 文件创建 ASMX Web 服务

wsdl的web服务怎么调用

如何从 wsdl 生成 Web 服务

从 WSDL 文件生成 Web 服务 [关闭]