I have taken over a C# asp.net project that references separate model, business logic, and data access layer projects. There is also a WPF project that references these same layers. The front-end UI layers (in both asp.net and WPF) call BLL functions (which in turn call DAL functions) that return datasets. The DAL uses a connection string defined in the web.config file (for asp.net) and in the app.config file (for WPF).What I want to do is be able to use the same asp.net web app to connect to different databases based on the subdomain value (so yyy.default.com and zzz.default.com both share the same actual website, but will use different connection strings). This is easy to create the connection string in the front-end, but how can the DAL access this dynamically created string without having to pass it via every single BLL function call?I thought of a static class that could hold the connection string, with the value being set by the web request, but that won't work in a web environment since static classes are not unique to a request (and therefore would wreak havoc with random connection strings being set and used improperly by other web requests).There are objects like HttpContext.Current.Items that are per-request, but this is also tightly coupled with asp.net, would be hacky to use this is an external DAL, and also could cause issues since this DAL is used in other non-web projects.I'm not looking for suggestions to switch to some ORM framework. While there are probably many ORM frameworks that could solve the issue, it would be unfeasible to refactor the entire application at this time, so I'm hoping there is a relatively easy way to share this simple string data with the DAL once per page request (versus as a parameter in every BLL/DAL function).Any suggestions on how to best accomplish this?