如何在不使用dotnet中的安全令牌(使用soap api)的情况下登录salesforce?

Posted

技术标签:

【中文标题】如何在不使用dotnet中的安全令牌(使用soap api)的情况下登录salesforce?【英文标题】:How to login salesforce without using security token in dotnet (using soap api)? 【发布时间】:2013-10-21 17:16:45 【问题描述】:

我需要在不使用 安全令牌(soap api)的情况下在 dotnet 中登录 Salesforce。

目前我们正在使用登录代码(soap api):

SforceService mySalesForceSerice= new SforceService();  
LoginResult myLoginResult=mySalesForceSerice.login(username,String.Concat(password,***securityToken***));                
this.SessionID = myLoginResult.sessionId;
this.ServerUrl = myLoginResult.serverUrl;  

但我没有使用 安全令牌

【问题讨论】:

【参考方案1】:

进入设置->安全控制->网络并输入您服务器的IP地址或地址范围。来自白名单 IP 地址的登录尝试不需要安全令牌。

我对大多数服务器都执行此操作,因此从 Eclipse 部署时无需输入令牌。我也这样做,所以我使用 apex REST 服务的 curl 脚本是无令牌的。

【讨论】:

【参考方案2】:

如果您查看登录的 API 参考

Salesforce 检查客户端应用程序登录的 IP 地址,并阻止来自未知 IP 地址的登录。对于通过 API 阻止的登录,Salesforce 返回登录错误。 然后,用户必须将其安全令牌添加到密码末尾才能登录。安全令牌是 Salesforce 自动生成的密钥。例如,如果用户的密码是 mypassword,安全令牌是 XXXXXXXXXX,那么用户必须输入 mypasswordXXXXXXXXXX 才能登录...... 当安全令牌无效时,用户必须重复登录过程才能登录。为避免这种情况,管理员可以确保将客户端的 IP 地址添加到组织的受信任 IP 地址列表中。如需更多信息,请参阅Security Token。

以下链接表示:

如果您的组织启用了单点登录 (SSO),则访问 API 或桌面客户端的用户无法登录 Salesforce,除非他们的 IP 地址包含在您组织的受信任 IP 地址列表或其个人资料中,如果他们的个人资料设置了 IP 地址限制。此外,委托的身份验证机构通常为具有“使用单点登录”权限的用户处理登录锁定策略。但是,如果为您的组织启用了安全令牌,则您组织的登录锁定设置决定了用户在被 Salesforce 锁定之前可以尝试使用无效安全令牌登录的次数。

在我看来,这是一个安全设置,需要由您的 salesforce 管理员设置,并且无法绕过。

【讨论】:

以上是关于如何在不使用dotnet中的安全令牌(使用soap api)的情况下登录salesforce?的主要内容,如果未能解决你的问题,请参考以下文章

USI 网络服务 SOAP 格式

如何在不使用库的情况下验证本机 Javascript 中的 Azure OAuth 访问 JWT 令牌?

我可以在不使用gradle的情况下使用Xamarin.Android中的Android数据绑定库吗?不是MVVM for dotnet

在到 WCF Web 服务的 SOAP 消息中,如何将 KeyIdentifier 直接放在 SecurityTokenReference 中(内联,不使用引用令牌)

在不使用表单的情况下,从 javascript 应用程序从节点服务器获取 JWT 令牌的最佳安全方法是啥?

带有 Zeep 和 Python 的 SOAP 客户端中的不记名令牌授权标头