我有一个连接到多个数据库的c#mvc.net应用程序。
为了澄清,基于url的子域,应用程序将连接到特定数据库。这是通过将web.config中的defaultConnectionFactory
设置为IDbConnectionFactory的自定义实现来完成的。一切正常。
但是,我遇到了WebSecurity的问题。 所有WebSecurity函数(例如,Login,CreateAccount等)都基于在应用程序启动时初始化的数据库
protected void Application_Start()
{
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);
//other initialisation stuf
根据WebMatrix,InitializeDatabaseConnection
函数应该在应用程序启动时调用一次,因此总是指向同一个数据库。
我想要的是,取决于httpRequest,所有WebSecurity的东西都将在链接到子域的数据库上完成。
有人对我有什么建议如何处理这种情况? 我应该覆盖WebSecurity并按httpRequest初始化它吗? 或者我应该使用自定义SimpleMembership提供商做什么?
提前致谢
答案 0 :(得分:0)
总的来说,这似乎是一个坏主意。但是,如果您拥有少量子域,则可以运行多个网站,每个网站处理一个子域。我不认为服务器上的负载会有所不同。您具有能够独立启动或关闭子域的优势。当然,您必须多次部署该软件。
现在,如果你有很多子域名:miamiFl.blahblah.com,NewYorkNewYork.blahblah.com ......那么再看看我的第一点。祝你好运:)