使用 CrmServiceClient 构造函数连接到 Dynamics 365

 

发布日期: 2017年1月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

若要连接到 Microsoft Dynamics 365,您创建 CrmServiceClient 类的实例,然后使用一个构造函数进行连接。 所有使用 CrmServiceClient 类对 Dynamics 365 的调用都是线程安全。

除了本主题中所述的构造函数之外,您还可以使用连接字符串和 CrmServiceClient 连接到 Dynamics 365。详细信息:使用 XRM 工具中的连接字符串连接至 Dynamics 365

本主题内容

使用 OrganizationServiceProxy 连接到 Dynamics 365

使用 OrganizationWebProxyClient 连接到 Dynamics 365

连接到 Dynamics 365(联机)(Office 365)

使用 OAuth 连接到 Dynamics 365(联机)(Office 365)

连接到 Dynamics 365 内部部署 (Active Directory)

连接到 Dynamics 365 面向 Internet 的部署 (IFD)

使用 OAuth 连接到 Dynamics 365 面向 Internet 的部署 (IFD)

连接到 Dynamics 365(基于声明)

确定您的连接状态

使用 OrganizationServiceProxy 连接到 Dynamics 365

使用以下构造函数和用户提供的 OrganizationServiceProxy 实例连接到 Dynamics 365。

CrmServiceClient crmSvc = new CrmServiceClient(<orgServiceProxy>);

使用 OrganizationWebProxyClient 连接到 Dynamics 365

使用以下构造函数和用户提供的 OrganizationWebProxyClient 实例连接到 Dynamics 365。 此构造函数在 Microsoft Dynamics 365(在线或本地) 中引入。

CrmServiceClient crmSvc = new CrmServiceClient(<orgWebProxyClient>);

连接到 Dynamics 365(联机)(Office 365)

使用以下构造函数连接到 Office 365 中的 Dynamics 365(在线) 实例。

CrmServiceClient crmSvc = new CrmServiceClient("<UserName>", CrmServiceClient.MakeSecureString("<Password>"), "<CrmRegion>", "<OrgName>", useUniqueInstance:false, useSsl:false, <orgDetail>, isOffice365:true);

<CrmRegion> 参数的有效值为:NorthAmericaEMEAAPACSouthAmericaOceaniaJPNCANINDNorthAmerica2。 如果将此设置为 String.Empty,则将在 Dynamics 365 组织的所有区域中搜索服务器。 对于 <OrgName> 参数,您可以指定唯一或友好名称。

以下参数为可选参数:useUniqueInstanceuseSslorgDetail

使用 OAuth 连接到 Dynamics 365(联机)(Office 365)

使用以下构造函数以使用 OAuth 协议连接到 Office 365 中的 Dynamics 365(在线) 实例。OAuth 支持在 Microsoft Dynamics 365(在线或本地) 中引入。

CrmServiceClient crmSvc = new CrmServiceClient("<UserName>", CrmServiceClient.MakeSecureString("<Password>"), "<CrmRegion>", "<OrgName>", useUniqueInstance:false, <orgDetail>,
                  <userIdentifier>, <clientId>, <redirectUri>, <tokenCachePath>, <externalOrgWebProxyClient>, PromptBehavior.Auto);

此构造函数使用 Microsoft Azure Active Directory 身份验证库 (ADAL) 对用户进行身份验证。 如果不指定用户凭据(用户名和密码),ADAL 将提示用户根据构造函数中指定的 PromptBehavior 参数提供凭据。 ADAL 使用 OAuth 协议对凭据进行身份验证,从 Azure Active Directory 获取访问和刷新标记,然后使用访问标记创建对 Dynamics 365 的请求。

<CrmRegion> 参数的有效值为:NorthAmericaEMEAAPACSouthAmericaOceaniaJPNCANINDNorthAmerica2。 如果将此设置到 String.Empty,则将在 Dynamics 365 组织的所有区域中搜索服务器。 对于 <OrgName> 参数,您可以指定唯一或友好名称。

连接到 Dynamics 365 内部部署 (Active Directory)

使用以下构造函数和 Active Directory 身份验证连接到现场部署的实例。

CrmServiceClient crmSvc = new CrmServiceClient(new System.Net.NetworkCredential("<UserName>", "<Password>", “<Domain>”), AuthenticationType.AD, "<Server>", "<Port>", "<OrgName>", useUniqueInstance:false, useSsl:false, <orgDetail>);

这将运行基于指定域的 Active Directory 身份验证。 对于 <Server> 参数,请指定您的 Dynamics 365 服务器的主机名,例如:crmtest。 对于 <OrgName> 参数,您可以指定唯一或友好名称。

以下参数为可选参数:useUniqueInstanceuseSslorgDetail

连接到 Dynamics 365 面向 Internet 的部署 (IFD)

使用以下构造函数连接到 Dynamics 365 IFD 实例。

CrmServiceClient crmSvc = new CrmServiceClient(new System.Net.NetworkCredential("<UserName>", "<Password>", “<Domain>”), AuthenticationType.IFD, "<Server>", "<Port>", "<OrgName>", useUniqueInstance:false, useSsl:false, <orgDetail>);

这将基于指定本地域运行基于声明的身份验证。 这对使用 AD FS 的客户很有用,并配置它们的 Dynamics 365 服务器作为声明,用户在 AD FS 域的居住人数和 Dynamics 365 的服务器相同。 对于 <Server> 参数,请指定您的 Dynamics 365 服务器的主机名,例如 crmtest。 对于 <OrgName> 参数,您可以指定唯一或友好名称。

以下参数为可选参数:useUniqueInstanceuseSslorgDetail

使用 OAuth 连接到 Dynamics 365 面向 Internet 的部署 (IFD)

使用以下构造函数以在 Windows Server 2012 R2 中的 Active Directory 联合身份验证服务 (AD FS) 中使用 OAuth 协议连接到 Dynamics 365 IFD 实例。 要让此构造函数工作,必须已将安装了 Microsoft Dynamics 365 服务器 的计算机配置为把 AD FS 2.2 用作安全令牌服务 (STS)。OAuth 对连接到 Dynamics 365 IFD 实例的支持在 Dynamics 365 中引入。

CrmServiceClient crmSvc = new CrmServiceClient("<UserName>", CrmServiceClient.MakeSecureString("<Password>"), "<HomeRealm>", "<HostName>", "<Port>", "<OrgName>", useSsl:true, useUniqueInstance:false, 
                        <orgDetail>, <userIdentifier>, <clientId>, <redirectUri>, <tokenCachePath>, externalOrgWebProxyClient, PromptBehavior.Auto);

应该在 IFD 服务器中注册支持 OAuth 的应用程序的 clientIdredirectUri 值。

如果不指定用户凭据(用户名和密码),ADAL 将提示用户根据构造函数中指定的 PromptBehavior 参数提供凭据。 ADAL 使用 AD FS 中的安全标记对用户进行身份验证,并使用该标记在 Dynamics 365 中执行操作。

连接到 Dynamics 365(基于声明)

使用以下构造函数以使用基于声明的身份验证。

CrmServiceClient crmSvc = new CrmServiceClient(new System.Net.NetworkCredential("<UserName>", "<Password>", “<Domain>”, "<HomeRealm>"),"<Server>", "<Port>", "<OrgName>");

这将针对指定运行基于指定主页领域运行基于声明的身份验证。 这对使用 AD FS 的客户很有用,并配置它们的 Dynamics 365 服务器作为声明,用户在 AD FS 域的居住人数和 Dynamics 365 的服务器相同。 对于 <Server> 参数,请指定您的 Dynamics 365 服务器的主机名,例如 crmtest。 对于 <OrgName> 参数,您可以指定唯一或友好名称。

确定您的连接状态

若要确定连接请求是否成功,请检查 CrmServiceClient 的值。IsReady 的属性。 如果为 true ,说明该连接为成功连接,您可以准备工作。 否则,请检查 CrmServiceClient 的值。 连接失败的原因的 LastCrmErrorCrmServiceClient.LastCrmException 属性。

另请参阅

AuthenticationType
使用 XRM 工具中的连接字符串连接至 Dynamics 365
使用 XRM PowerShell cmdlets 工具连接到 Dynamics 365
使用 XRM 工具执行 Dynamics 365 中的操作
示例:Microsoft Dynamics 365 快速入门指南
使用 XRM 工具,构建 Windows 客户端应用程序

Microsoft Dynamics 365

© 2017 Microsoft。 保留所有权利。 版权