问题标签 [xrm-tooling-connector]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
181 浏览

c# - 如何转义传递给 CrmServiceClient 构造函数的连接字符串中的特殊字符

命名空间中的CrmServiceClientMicrosoft.Xrm.Tooling.Connector具有一个将连接字符串作为单个参数的构造函数(此处记录: https ://docs.microsoft.com/en-us/dynamics365/customerengagement/on-premises/developer/xrm-tooling/use -connection-strings-xrm-tooling-connect?view=op-9-1)。

此连接字符串与连接字符串的其他用途相似/熟悉(名称/值对由等号分隔并用分号分隔),但我找不到任何可靠的文档来建议转义特殊字符的具体规则。如果在此特定上下文中,连接字符串值必须包含等号或分号,如何转义?虽然有一些关于 SQL 和实体框架连接字符串的文档,但它们在完全不同的上下文中使用,所以我看不出有任何理由相信这些上下文中的文档适用于CrmServiceClient构造函数上下文。

有没有人有指向此上下文的明确文档的指针,和/或在此上下文中的足够经验来冒险进行相当明确的临时描述?

谢谢。

============================添加以响应评论请求

在对上述初始问题的评论中,一位好心的贡献者要求我添加有关我的用户故事的更多细节。要求是我添加自己的构建器/解析器。

我不会创建解析器。解析器将是CrmServiceClient构造函数使用的解析器。它是 Xrm 工具连接器的一部分。

我还没有创建一个构建器来构建将传递给CrmServiceClient构造函数的连接字符串。我的第一个任务是为该构建器创建一个单元测试,以确定它是否正确构建,这就是为什么我希望解析器强制执行明确的规则。

采取以下示例连接字符串:

AuthType=OAuth;Username=jsmith@contoso.onmicrosoft.com; Password=passcode;Url=https://contosotest.crm.dynamics.com;AppId=51f81489-12ee-4a9e-aaae-a2591f45987d; RedirectUri=app://58145B91-0C36-4500-8554-080854F2AC97;LoginPrompt=Auto

在这个基本示例中,连接字符串的键/值对集中没有任何值,其中包含任何特殊字符,因此无需转义。但是现在让我们想象一下,Password 不是字符串“passcode”,而是充满了特殊字符。假设密码是

"aB4$;";~^''dEfg'!

该密码本身以双引号开头,其中有另一个双引号,有两个单引号和两个分号。期望密码可能包含这样的字符并非没有道理。如果传递给CrmServiceClient构造函数的连接字符串正是这样的:

AuthType=OAuth;Username=jsmith@contoso.onmicrosoft.com; Password="aB4$;";~^''dEfg'!;Url=https://contosotest.crm.dynamics.com;AppId=51f81489-12ee-4a9e-aaae-a2591f45987d; RedirectUri=app://58145B91-0C36-4500-8554-080854F2AC97;LoginPrompt=Auto

然后肯定会被错误地解析。

这是我试图通过CrmServiceClient构造函数解析器使用的一组明确规则来解决的问题。

0 投票
0 回答
16 浏览

c# - 将旧系统(On-Primise 2016)中特定表的记录同步到新系统(在线CRM)

我正在制作一个 ConsoleApp,我正在使用 XRM Tolling 连接到两个不同的 CRM 组织(到目前为止一切都很好)。现在的问题是我必须将旧系统(On-Premise 2016)中特定表的记录同步到新系统(在线)。它应该从特定表中克隆记录,这意味着所有数据也应该是相同的。关于这方面的任何帮助,我如何编写 c# 代码来达到预期的结果。