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 错误的主要内容,如果未能解决你的问题,请参考以下文章