Tag: salesforce

IFrame referer问题 – asp.net c#

我们的一个应用程序将在iframe中运行,在salesforce内部,我在访问引用者时遇到了麻烦。 他们希望我们做一些引用检查,以确保请求来自salesforce,并且我们已经获得了要检查的IP地址。 我的问题是,每当我尝试通过以下两种方法之一访问引用时: HttpContext.Current.Request.ServerVariables[“HTTP_REFERER”] HttpContext.Current.Request.UrlReferrer 它返回null。 任何想法我怎么能抓住引用者? PS:我知道你可以欺骗引用者,但这是要求的一部分。

C#REST API调用 – 在邮递员中工作,而不是在代码中工作

我有一些现有的代码正在工作,并且突然退出。 我无法弄清楚为什么…… 这是我的代码: public static string RequestToken(string u, string pw) { string result = string.Empty; string strUrl = “https://xxx.cloudforce.com/services/oauth2/token?grant_type=password&client_id=XXXX&client_secret=XXXX&username=” + u + “&password=” + pw; HttpWebRequest tokenRequest = WebRequest.Create(strUrl) as HttpWebRequest; Debug.Print(strUrl); tokenRequest.Method = “POST”; try { using (HttpWebResponse tokenResponse = tokenRequest.GetResponse() as HttpWebResponse) { if (tokenResponse.StatusCode != HttpStatusCode.OK) throw new Exception(String.Format( “Server error (HTTP […]

解决使用C#在Salesforce中创建的AES256值

在Salesforce中运行以下Apex代码,我加密了一个字符串: public static String getEncryptedData() { Blob cryptoKey = Crypto.generateAesKey(256); String dataToEncrypt = ‘Test string’; Blob encryptedData = Crypto.encryptWithManagedIV(‘AES256’, cryptoKey, Blob.valueOf(dataToEncrypt)); return EncodingUtil.base64Encode(encryptedData); } 假设这个实现是正确的,我需要在C#中解密它。 我有以下,但我看到“填充无效,无法删除”错误。 (当然,示例密钥和加密的字符串值): private string Decrypt(string encryptedbase64Password) { RijndaelManaged aes256 = new RijndaelManaged(); aes256.KeySize = 256; aes256.Mode = CipherMode.CBC; aes256.Padding = PaddingMode.PKCS7; aes256.BlockSize = 128; // Salesforce.com stores the first 16 […]

更新不在SalesForce API中

我正在尝试通过SalesForce API(Enterprise WSDL)更新记录。 下面的代码执行正常,并且saveResult返回说操作成功。 然而,当我查看SalesForce时 – 记录尚未更新。 我能想到的唯一一件事就是我使用了错误的ID – 但我有五元组检查并再次检查它然后重新检查它。 以前有人遇到过这样的事吗? 或者,如果有人可以指出我可能在某处犯下的愚蠢错误,我将非常高兴:-) sforce.Participant__c updateParticipant = new sforce.Participant__c(); updateParticipant.Id = participant.Id.Length == 15? participant.Id : participant.Id.Substring(0, 15); if (updateType == “pre”) { updateParticipant.Manual_Download_Date__c = DateTime.Now; updateParticipant.Manual_Download__c = true; } else if (updateType == “post”) { updateParticipant.Post_Class_Manual_Download__c = true; updateParticipant.Post_Class_Manual_Downloaded_Date__c = DateTime.Now; } sforce.SaveResult[] result = SFLib.sfdc.update(new […]

使用C#连接到SalesForce批量API

我正在尝试连接到SalesForce.com批量API,以便我可以从我的应用程序大量上传数据。 我已经阅读了PDF文档 ,该文档强调使用CURL来发出POST请求。 为了与说明保持一致,我创建了一个XML格式的文本文件,用于登录服务器。 Login.txt内容如下: my username my password 这是我在我的代码中尝试做的登录请求: XmlDocument XMLResponse = null; HttpWebRequest httpRequest; HttpWebResponse httpResponse = null; Stream requestStream = null; Stream responseStream = null; XmlTextReader xmlReader; httpRequest = HttpWebRequest)WebRequest.Create(“https://login.salesforce.com/services/Soap/c/20.0”); try { byte[] bytes = File.ReadAllBytes(filename); httpRequest.Method = “POST”; httpRequest.ContentLength = bytes.Length; httpRequest.ContentType = “text/xml; charset=UTF-8”; httpRequest.Headers.Add(“SOAPAction: login”); requestStream = httpRequest.GetRequestStream(); requestStream.Write(bytes, […]

方法’query’没有重载需要5个参数salesforce

我正在连接salesforce api,我已将Salesforce企业Wsdl导入到我的项目中。 我可以validation用户,但我在查询记录时遇到问题,我不确定我还缺少什么以及如何解决这个问题 方法’query’没有重载需要5个参数 //create SOQL query statement string query = “SELECT Name, AccountNumber, BillingState FROM Account WHERE BillingState = ‘CA'”; enterprise.QueryResult result = queryClient.query( header, //sessionheader null, //queryoptions null, //mruheader null, //packageversion query); //cast query results IEnumerable accountList = result.records.Cast(); //show results foreach (var account in accountList) { Console.WriteLine(string.Format(“Account Name: {0}”, account.Name)); }

来自C#客户端的SalesForce身份validation出错

我是SalesForce的新手,正在努力掌握基础知识,因为我们将在下周开始一个大型集成项目。 对于至少部分集成,我们需要访问SalesForce Rest API。 为此,我团队中的另一位绅士和我使用Postman做了一些基本的调用原型,取得了很好的成功,特别是围绕OAuth2身份validation。 我们的问题是,虽然Postman中的所有内容似乎都运行良好,但只要我们切换到使用C#进行调用,我们就会开始收到错误,而不是我们的身份validation令牌。 响应是HTTP Status 400 Bad Request,响应的内容是 {“error”:”invalid_grant”,”error_description”:”authentication failure”}. 以下是我们尝试过的一些C#代码的示例: using System; using System.Collections.Generic; using System.Net.Http; using System.Web; namespace SFTokenTest { internal class Program { private const string LoginUrl = “https://test.salesforce.com/services/oauth2/token”; private static void Main(string[] args) { FormUrlEncodedContent content = new FormUrlEncodedContent(new [] { new KeyValuePair(“grant_type”,HttpUtility.UrlEncode(“password”)), new KeyValuePair(“password”,HttpUtility.UrlEncode(“PASSWORD”)), new KeyValuePair(“username”, HttpUtility.UrlEncode(“USERNAME”)), […]

如何使用两个WSDL并使用C#应用程序维护测试实例?

我创建了一个服务,通过C#使用他们的WSDL与SalesForce平台进行通信。 碰巧SalesForce(相当逻辑上)允许其平台的“沙盒”实例和其平台的“生产”实例。 我的应用程序旨在与生产一起使用,但我一直在使用沙箱进行集成测试和unit testing。 我现在已经到了需要部署到生产的地步。 但是,我遇到一个大问题,如果我需要构建和测试新function,我将不得不将WSDL从生产实例更新到沙箱实例,然后在添加新function时来回切换。 这是因为两个WSDL 完全不同 ,我必须从它们生成代码! 这不仅是草率的,而且是危险的。 我可能会影响我的一些实时系统数据。 我想找到一种方法来使用注册表项,文本值或一些配置设置来告诉我的应用程序使用哪个WSDL。 麻烦是? 我无法弄清楚人们如何接近这一点。 我的代码引用的对象是从该WSDL生成的。 有任何想法吗?