Use connection strings in XRM tooling to connect to Dynamics 365

Dynamics CRM 2016
 

Updated: November 29, 2016

Applies To: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

With Microsoft Dynamics 365 (online & on-premises), XRM tooling enables you to connect to your Dynamics 365 instance by using connection strings. This is similar to the concept of connection strings used with Microsoft SQL Server. Connection strings have native support in configuration files, including the ability to encrypt the configuration sections for maximum security. This enables you to configure Dynamics 365 connections at deployment time, and not hard code in your application to connect to your Dynamics 365 instance.

You specify the connection string in the app.config or web.config file for your project, as shown in the following example.

<connectionStrings>
    <add name="MyCRMServer" connectionString="AuthType=AD;Url=http://contoso:8080/Test;" />
</connectionStrings>

System_CAPS_security Security Note

If you add any sensitive information to the app.config or web.config file, for example an account password, be sure to take appropriate security precautions to protect the information.

After creating the connection string, you use it to create a CrmServiceClient object.

//Use the connection string named "MyCRMServer"
//from the configuration file
CrmServiceClient crmSvc = new CrmServiceClient(ConfigurationManager.ConnectionStrings["MyCRMServer"].ConnectionString);

System_CAPS_noteNote

You’ll have to use the following using directive in your code to reference the System.Configuration namespace to access the connection string in your code: using System.Configuration;

After creating a CrmServiceClient object, you can use the object to perform actions in Dynamics 365. More information: Use XRM tooling to execute actions in Dynamics 365

The connection string contains a series of name=value pair separated by semi colons. The following table lists supported parameters, which can be entered in any order.

Parameter name

Description

ServiceUri, Service Uri, Url, or Server

Specifies the URL to the Microsoft Dynamics 365 Server. The URL can use http or https protocol, and the port is optional. The default port is 80 for the http protocol and 443 for the https protocol. The server URL is typically in the format of http://crm-server:port/organization-name for Dynamics 365 on-premises and https://organization-name. crm.dynamics.com for Dynamics 365 (online).

The organization-name is required. You can specify either the friendly or the unique name of the organization to connect to.

Example: http://contoso/test, http://contoso:5555/test, https://contoso/test, https://test.crm.dynamics.com , or http://10.10.10.2/test.

Domain

Specifies the domain that will verify user credentials.

UserName, User Name, UserId, or User Id

Specifies the user's identification name associated with the credentials.

Password

Specifies the password for the user name associated with the credentials.

HomeRealmUri or Home Realm Uri

Specifies the Home Realm Uri.

AuthenticationType or AuthType

Specifies the authentication type to connect to Dynamics 365 instance. Valid values are: AD, IFD (AD FS enabled), OAuth, or Office365.

  • AD and IFD are permitted for Dynamics 365 on-premises instances only.

  • OAuth is permitted for Dynamics 365 (online) and on-premises instances.

  • Office365 is permitted for Dynamics 365 (online) instances only.

RequireNewInstance

Specifies whether to reuse an existing connection if recalled while the connection is still active. Default value is false that indicates the existing connection be reused. If set to true, will force the system to create a unique connection.

ClientId, AppId or ApplicationId

Specifies the ClientID assigned when you registered your application in Microsoft Azure Active Directory or Active Directory Federation Services (AD FS).

This parameter is applicable only when the authentication type is specified as OAuth.

RedirectUri or ReplyUrl

Specifies the redirect URI of the application you registered in Microsoft Azure Active Directory or Active Directory Federation Services (AD FS).

This parameter is applicable only when the authentication type is specified as OAuth.

TokenCacheStorePath

Specifies the full path to the location where the user token cache should be stored. The running process should have access to the specified path. It is the processes responsibility to set and configure this path.

This parameter is applicable only when the authentication type is specified as OAuth.

LoginPrompt

Specifies whether the user is prompted for credentials if the credentials are not supplied. Valid values are:

  • Always: Always prompts the user to specify credentials.

  • Auto: Allows the user to select in the login control interface whether to display the prompt or not.

  • Never: Does not prompt the user to specify credentials. If using a connection method does not have a user interface, you should use this value.

This parameter is applicable only when the authentication type is specified as OAuth.

The following examples show how you can use connection strings for connecting to different deployments and authentication scenarios.

<add name="MyCRMServer" connectionString="AuthType=AD;Url=http://contoso:8080/Test;" />

<add name="MyCRMServer" connectionString="AuthType=AD;Url=http://contoso:8080/Test; Domain=CONTOSO; Username=jsmith; Password=passcode" />

<add name="MyCRMServer" connectionString="AuthType=Office365;Username=jsmith@contoso.onmicrosoft.com; Password=passcode;Url=https://contoso.crm.dynamics.com"/>

<add name="MyCRMServer" connectionString="AuthType=OAuth;Username=jsmith@contoso.onmicrosoft.com; Password=passcode;Url=https://contosotest.crm.dynamics.com;AppId=<GUID>;RedirectUri =app://<GUID>;TokenCacheStorePath =c:\MyTokenCache;LoginPrompt=Auto"/>

<add name="MyCRMServer" connectionString="AuthType=OAuth;Username=jsmith@contoso.onmicrosoft.com; Password=passcode;Url=https://contoso:8080/Test;AppId=<GUID>;RedirectUri=app://<GUID>;TokenCacheStorePath =c:\MyTokenCache;LoginPrompt=Auto"/>

<add name="MyCRMServer" connectionString="AuthType=IFD;Url=http://contoso:8080/Test; HomeRealmUri=https://server-1.server.com/adfs/services/trust/mex/;Domain=CONTOSO; Username=jsmith; Password=passcode" />

To determine if the connection request was successful, check the value of the CrmServiceClient.IsReady property. If true, the connection is successful, and you are ready to work. Otherwise, check the values of the CrmServiceClient.LastCrmError and CrmServiceClient.LastCrmException properties for the cause of the connection failure.

Microsoft Dynamics 365

© 2016 Microsoft. All rights reserved. Copyright

Show: