Option 1 – Just host the help on each domain.
Option 2 – Host the help pages on a separate, 3rd domain, and redirect users to it.
However, I’d like to be able to check credentials that are added to the session variables during login
Unless you have some sort of SSO setup or your pass these details to the help pages when a user navigates, this will be difficult to accomplish if your help pages are hosted on a separate domain. This requirement is enough to favour Option 1, considering that you might not be wanting to spend time working on an SSO setup for the demos.
Option 3 – Modify your application to require a third parameter at login (or infer this parameter from the domain name). This third parameter could be seen as a Domain or a Company, and it will essentially just determine the connection string your application will use. This allows you to use the exact same copy of your web application, but connecting to different databases depending on the domain which the user specified when they logged on. So for example, a user logs on as “subdomain1\bill” and your application will see “subdomain” and route that request to the correct database. In your web.config, you could have connection strings named “subdomain1” and “subdomain2”.
Option 1: this would mean updating the help files in multiple locations. During demo stage, the help file is likely to be the most volatile part of the app, which is why I would like to have just one copy of those files somewhere.
Option 2: I’ve thought through a separate “Help” application, that I can access with an encrypted URL query string, which should be sufficient security for this stage of development. So that’s currently the first choice.
Option 3: I’ve recently used the techniques for identifying domain name and modifying connection string, so I believe I can make that work, which would take care of the data separation.
A concern I have always had with multiple users using the same code base is my lack of understanding of how that works. Due to that lack of understanding, I have had the concern that if one user encounters an error that halts execution, then that would affect other users. (Now that I think about it, that couldn’t make sense, because obviously sites can be accessed by thousands of user simultaneously.)
Still, it would be helpful for me if I could understand how different users of the same code are separated so that that would not happen.