具有多个数据库的WebSecurity

本文关键字:WebSecurity 数据库 | 更新日期: 2023-09-27 17:54:34

我有一个c# mvc.net应用程序,连接到多个数据库。为了澄清,基于url的子域,应用程序将连接到特定的数据库。这是通过在web中设置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?或者我应该做一些与自定义simplemember提供程序?

thanks in advance

具有多个数据库的WebSecurity

一般来说,这似乎是一个坏主意。然而,如果你有少量的子域名,那么你可以运行多个网站,每个网站处理一个子域名。我不认为服务器上的负载会有什么不同。您的优势在于能够独立地提升或降低子域。当然,您必须多次部署软件。

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