WebSecurity具有多个数据库

时间:2014-03-27 14:17:28

标签: c# asp.net-mvc webmatrix

我有一个连接到多个数据库的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提供商做什么?

提前致谢

1 个答案:

答案 0 :(得分:0)

总的来说,这似乎是一个坏主意。但是,如果您拥有少量子域,则可以运行多个网站,每个网站处理一个子域。我不认为服务器上的负载会有所不同。您具有能够独立启动或关闭子域的优势。当然,您必须多次部署该软件。

现在,如果你有很多子域名:miamiFl.blahblah.com,NewYorkNewYork.blahblah.com ......那么再看看我的第一点。祝你好运:)