Skip to content
Microsoft Dynamics 365

CRM 4.0 introduced many changes to the way URLs need to be constructed.


In MSCRM 3.0 and earlier, you could simply access a page by using a URL such as ht.tp://<crmserver:port>/default.aspx


The introduction of multi-tenancy and CRM Online/IFD deployments required changes to the URL formats. Both CRM online and IFD deployments require URLs of the form ht.tps://orgname.mycrmhost.com – This was mainly done for reasons related to securing cookie domains, but also helps provide organization specific URLs.


Things are a little bit different for on-premise CRM installations.



a)      we need a way to indicate which organization the user is trying to access – The format used here is: /orgname/page.aspx”>/orgname/page.aspx”>ht.tp://<crmserver:port>/orgname/page.aspx


b)     We actually don’t create virtual directories for every organization. MSCRM implements a virtual path provider that parses the URL to figure out which organization you are accessing and help in performing the correct authentication (verifying that the user is a member of that organization etc).


c)     For on-premise deployments, if a user just types in a URL without an organization name (such as ht.tp://crmserver), MSCRM would try to service the request for the user’s default organization.


One of the common questions is around accessing custom pages and the correct URL format for that.


Rich Dickinson on the CRM PM team compiled an excellent list of when the custom page should be accessed using an org specific URL and the table below is based on that compilation.






























URL to access what object?


Format for On-Premise Deployments


Format for IFD deployments


Format for CRM Online


aspx page or webservice under ISV folder using MSCRM’s vdir


Prepend org name to the page – http:<crmserver>/orgname/isv/page.aspx


Do not prepend org name to the page. URLs are of the format:


ht.tp://orgname.myhost.com/isv/page.aspx


N/A


aspx page or webservice not under MSCRM’s vdir (on a separate vdir or server for example)


Do not prepend.


Do not prepend


Do not prepend org name.


ISV Menu/Iframe to a URL addressable CRM form


Prepend org name


Do not prepend orgname


Do not prepend orgname


Access crmservice.asmx


Use DiscoveryService


Use DiscoveryService


Use DiscoveryService


 


You will notice that you will have to prepend the orgname to the URL if your page is under the ISV folder in MSCRM’s vdir (for on-premise deployments). This is because the MSCRM virtual path provider will process the request to your page and it will assume the request is for the default organization for that user if an orgname is not specified and can result in “The organization id of the user being verified does not match the organization id of the execution context passed to VerifyUser” error.


Michael Höhne has a more detailed blog explaining the authentication issue at: http://www.stunnware.com/crm2/topic.aspx?id=js28


Important note: We will soon be documenting an API (prependOrgName) that can be used in client side scripts to adjust a given URL automatically. We’ll have a blog announcing this in the CRM team blog as soon as the documentation is ready (next round of SDK documentation update will be around end of august).


The CRM SDK documentation also has walkthroughs on how to use discovery service to get the URL to access MSCRM webservices — http://msdn.microsoft.com/en-us/library/bb955359.aspx


Jagan Peri

We're always looking for feedback and would like to hear from you. Please head to the Dynamics 365 Community to start a discussion, ask questions, and tell us what you think!

Join the conversation

Loading comments...