我需要在 dotnet 中登录 Salesforce,而不使用 安全令牌(soap API)。
目前我们使用登录代码(soap API):
SforceService mySalesForceSerice= new SforceService();
LoginResult myLoginResult=mySalesForceSerice.login(username,String.Concat(password,***securityToken***));
this.SessionID = myLoginResult.sessionId;
this.ServerUrl = myLoginResult.serverUrl;
但是我没有使用安全令牌。
进入设置->安全控制->网络并输入服务器的IP地址或地址范围。来自白名单 IP 地址的登录尝试不需要安全令牌。
我对大多数服务器都执行此操作,因此从 Eclipse 部署时无需输入令牌。我也这样做,所以我使用 apex REST 服务的curl 脚本是无令牌的。
如果您查看登录的 API 参考
Salesforce 检查客户端应用程序登录的 IP 地址,并阻止来自未知 IP 地址的登录。对于通过 API 阻止的登录,Salesforce 返回登录错误。 然后,用户必须将其安全令牌添加到密码末尾才能登录。安全令牌是 Salesforce 自动生成的密钥。例如,如果用户的密码是 mypassword,并且其安全令牌是 XXXXXXXXXX,则用户必须输入 mypasswordXXXXXXXXXX 才能登录...... 当安全令牌无效时,用户必须重复登录过程才能登录。为避免这种情况,管理员可以确保将客户端的 IP 地址添加到组织的受信任 IP 地址列表中。有关更多信息,请参阅安全令牌。
以下链接表示:
如果您的组织启用了单点登录 (SSO),则访问 API 或桌面客户端的用户无法登录 Salesforce,除非他们的 IP 地址包含在您组织的受信任 IP 地址列表或其个人资料中(如果他们配置文件设置了 IP 地址限制。此外,委派的身份验证机构通常会为具有“使用单点登录”权限的用户处理登录锁定策略。但是,如果您的组织启用了安全令牌,则您组织的登录锁定设置将确定用户在被锁定在 Salesforce 之外之前可以尝试使用无效安全令牌登录的次数。
在我看来,这是一个安全设置,需要由您的销售人员管理员设置,并且无法绕过。