When you try to use an external component on client side (RunOnClient = Yes), then it can happen that get the following message “The Microsoft Dynamics NAV client needs permission to run xyz – an external component”:
The problem here is, that it is not possible to allow it for all future sessions. It is limited to the current client session, and will come up every time the user has restarted the client. This can be annoying for the end user.
There is a quick solution for this: set the key ServicePrincipleNameRequired in the ClientUserSettings.config to true:
<add key="ServicePrincipalNameRequired" value="True" />
The description of this key from the MSDN site http://msdn.microsoft.com/en-us/library/dd301077(v=nav.70).aspx:
If this parameter is set to true, then the client can only connect to a Microsoft Dynamics NAV Server instance that has been associated with a service principal name (SPN).
If this parameter is set to false, then the client attempts to connect to the configured Microsoft Dynamics NAV Server instance, regardless of whether that instance is associated with an SPN.
You might wonder what this has to do with running an external component. The reason is that a NAV Server instance that has an associated SPN is considered to be trustworthy, and therefore external components are safe to use. At the other hand, the client will not be able to contact to a server that has no associated SPN. That might not be a problem in live situations when every part of the installation and configuration is done correctly, including SPN’s. But when SPN’s are missing you will not be able to use this option.
Remember that there are at two locations of the ClientUserSettings.config file:
During installation a default ClientUserSettings.config is installed in the location ‘C:\ProgramData\Microsoft\Microsoft Dynamics NAV\70’. This config file is used as a default config for any user that starts the client for the first time. At first time starting, a copy of this config file is made to the location ‘C:\Users\<username>\AppData\Roaming\Microsoft\Microsoft Dynamics NAV\70’.
If you want to configure the setting for all future users, then change the config file in the ProgramData folder. Otherwise change the config file in the Users Roaming folder.
By the way and not on topic: for Terminal Servers / Citrix Servers it is a good idea to change the default config file in the ProgramData folder before any user starts the NAV client. That will save a lot of time.