Assume the following. You developed a managed solution using CRM 2011 Online. The solution contains plugins and associated configuration steps, which are defined in the Plugin Registration tool. If you now try to install the managed solution in a different environment (organization), the plugin works, but the “secure configuration” portion in plugin registration tool is lost.
Secure Configuration Strings for plugins do not get imported with the plugin steps when importing a solution to another organization.
Plug-in assemblies must be readable by everyone to work correctly when registered in the Microsoft Dynamics CRM system. Therefore, it is a security best practice to not develop plug-in code that contains any system logon information, confidential information, or company trade secrets. According to these security best practices we have intentionally limited usage of the secure configuration information for CRM 2011 Online. Therefore secure configuration information are not included as part of solution transport.
Instead of using the secure configuration section try to handover your plugin parameters via the unsecure configuration section.
Write a Plug-in Constructor
The Microsoft Dynamics CRM platform supports an optional plug-in constructor that accepts either one or two string parameters. If you write a constructor like this, you can pass any strings of information to the plug-in at run time. The following C# sample shows the format of the constructor. In this example, the plug-in class is named SamplePlugin.
public SamplePlugin(string unsecure)
public SamplePlugin(string unsecure, string secure)
The first string parameter of the constructor contains public (unsecure) information. The second string parameter contains non-public (secure) information (e.g. an unencrypted value).
The information that is passed to the plug-in constructor in these strings is specified when the plug-in is registered with Microsoft Dynamics CRM. When using the Plug-in Registration tool to register a plug-in, you can enter the secure and unsecure information in the Secure Configuration and Unsecure Configuration fields provided in the Register New Step form.
You can register plug-ins to execute in online mode, offline mode, or both. Offline mode is only supported on the Microsoft Dynamics CRM for Microsoft Office Outlook with Offline Access client. Your plug-in code can check whether it is executing in offline mode by checking the IsExecutingOffline property. When using Microsoft Dynamics CRM for Microsoft Office Outlook with Offline Access, the secure string is not passed to a plug-in that executes while the Microsoft Dynamics CRM for Outlook is offline.
Register a Plug-in
A walkthrough that demonstrates how to register a plugin manually and pass secure and unsecure information to your plugin can be found in the CRM SDK itself:
Registering a Plug-in programmatically
You can find a small code sample and more information about how to programmatically pass secure and unsecure information to your plugin on the following webpage:
Writing the Plug-in Constructor
Register and Deploy Plug-ins
A short summary of the Plug-in Registration tool, registration of Plug-ins and Deployment of Plug-ins can be found here:
Greetings from the CRM team