Breaking news from around the world
Get the Bing + MSN extension
Now Available in Community - MBAS 2019 Presentation Videos
Catch the most popular sessions on demand and learn how Dynamics 365, Power BI, PowerApps, Microsoft Flow, and Excel are powering major transformations around the globe. | View Gallery
2019 release wave 2 Discover the latest updates to Dynamics 365Release overview guides and videos Release Plan | Early Access Availability
Ace your Dynamics 365 deployment with packaged services delivered by expert consultants. | Explore service offerings
Connect with the ISV success team on the latest roadmap, developer tool for AppSource certification, and ISV community engagements | ISV self-service portal
The FastTrack program is designed to help you accelerate your Dynamics 365 deployment with confidence.
FastTrack Program | Finance TechTalks | Customer Engagement TechTalks | Talent TechTalks | Upcoming TechTalks
I’ve been working on Dynamics Portals consistently over the past few years and one frustrating bit is the implementation of Website Site Settings.
Each Website that you configure within Portals has a series of Site Setting records that are essentially string key/value pairs, each record having a Name and Value, and an additional description. For example, a simple true/false flag indicating whether Search is enabled:
Pretty simple, right? With other Site Settings, things become a bit more complex. Take a look at the settings required to set up external authentication, such as with Azure B2C. Here is an excellent post by Nick Doleman at readyxrm.blog where he provides detailed instructions on how to Configure Azure AD B2C for PowerApps Portals. Here is a list of settings from Nick’s post:
Authentication/OpenIdConnect/[Federation-Name]/DefaultPolicyIdAuthentication/OpenIdConnect/[Federation-Name]/AuthorityAuthentication/OpenIdConnect/[Federation-Name]/PasswordResetPolicyIdAuthentication/OpenIdConnect/[Federation-Name]/ ValidIssuersAuthentication/OpenIdConnect/[Federation-Name]/ExternalLogoutEnabledOpenID Connect Site Settings
Nick does an excellent job describing the settings, so I won’t go into those details. What I will point out is that to configure a single feature, we have six related Site Setting records with special rules. For example, the ValidIssuers Site Setting is actually a delimited list of URLs (while the OnlineDomains Site Setting is delimited by semicolons!).
The Names in this list have some special rules, too. The segment of the name in bold [Federation-Name] is filled in using the Federated Name set from your Azure configuration. For example, an Azure Federated Name could be:
Authentication/OpenIdConnect/Azure B2C/DefaultPolicyIdOpenID Connect Site Settings
So with the Open ID Connect settings group, the Names follow a convention such that values are included in the Name itself.
While simple name value pairs makes storing the values easy, editing these more complex settings becomes complicated and open to error.
Nick actually suggested this as an XrmToolBox tool back in February while at the Boston 365 Saturday event. At the time, I did not have a handle on the complexities of the Site Settings values, but after reviewing his blog and setting things up myself for a Portal last week, the need for the tool became very clear!
This XrmToolBox Tool offers the following
Using the new tool, an example of setting up Azure B2C would look like:
The corresponding Site Setting records would be as follows:
This list of available Site Settings should be pretty extensive, but some have not yet been added to the custom editor. As I continue to review the documentation, I’ll be adding the outstanding Site Settings to the custom editor.
I’ve already mentioned Nick and his insanely helpful readyxrm.blog, but I also need to mention two others on this tool. Thanks to Jonas Rapp and his his CrmGridView control, I was able to add the list of all Site Setting records to my Tool with a few lines of code. If you have not used it yet, you can add it to your project using NuGet: xrmtb.XrmToolBox.Controls.
Because this tool means editing critical records in your Portal, I considered adding a back up feature for your Site Setting records. I realized that Tanguy Touzard already offers both export and import of select Portal records with his Portal Records Mover XrmToolBox tool. All I needed to do is add a link from my tool to open the Portal Records Mover and we can backup and restore Site Settings should we have any issues.
I was going to joke that I am really getting tired of having to thank these three guys. But this is yet another examples of the power (get it?) behind the Dynamics 365, Business Applications, and Power Platform community. This willingness of community members to share experiences, ideas, and solutions makes our work so much easier!
The source code for the Portal Site Settings Manager can be found on Github here:https://github.com/jamesnovak/Futurez.XrmToolbox.PortalSiteSettings
I have published the Portal Site Setting Manager tool to the XrmToolBox Plugin Store so I hope it will be available soon!
I’ll be adding some notes with more detail to the read me, but for now, I believe the Tool should be fairly easy to use. If you have any suggestions or issues, drop me a line or add an Issue to the Repository.
Business Applications communities