I’ve gotten a few questions about how Arena determines the appropriate portal to load when someone requests an Arena site. Here’s the steps that Arena goes through to determine which portal should be loaded…
- The first thing it checks is if a “portal” query string parameter was specified. If so, it loads the portal with the specified ID.
- It will then check for an existing cookie that may have been saved by a previous request during the same browser session (If this is the first request during the the user’s browser session, this cookie will not exist).
- If a “page” query string parameter was specified, Arena will find that page in the page hierarchy and then find it’s very topmost (root) page. If the root page happens to be the default page for any of the portals, then the first portal with that default page will be loaded.
- It will then read the SERVER_NAME header on the request and check each portal to see if the SERVER_NAME header contains the “Default Domain” value specified for the portal. The first portal with a Default Domain value that is present in the SERVER_NAME header will be loaded.
- If a portal has not been loaded by any of the previous methods, Arena will load the portal specified by the “DefaultPortalId” value specified in the Web.Config file.
After loading a portal, Arena saves the portal as a session cookie, so that it can use step 2 above on each of the user’s following requests.
Keep in mind, all this is done once the request makes it to the Arena application. When debugging an issue related to what portal is getting loaded, make sure to consider other factors too, such as your IIS configuration, or other ASP pages that may be redirecting the user. That’s just to say that the URL you see in your browser window, may not be the URL that Arena sees when it is attempting to determine the appropriate portal to load.
