【问题标题】:How to manage multiple connections for different users如何管理不同用户的多个连接
【发布时间】:2023-03-28 04:30:01
【问题描述】:

我正在为房地产机构开发 CMS 解决方案。 所以不同的用户/组将使用相同的工具。

我创建了 1 个 asp.net 会员数据库,我在其中管理所有用户。 用户按不同的角色分组。(1 个角色 = 1 个代理机构)

然后 - 对于每个组,我都有另一个数据库。在这个数据库中,我管理给定办公室的不动产和客户。 (这些数据库具有相同的结构。)

目前我正在使用“自定义 ASP.NET 配置文件类”来存储特定数据库的连接字符串。如果用户登录,我会创建此自定义配置文件。

现在我遇到了问题,如果匿名用户正在访问该页面(有一个公共部分),我会收到连接字符串错误,因为没有“自定义配置文件”,我的函数可以读取连接字符串

我的自定义配置文件类如下所示: 公共类用户配置文件 继承 ProfileBase 公共共享函数 GetUserProfile(username As String) As UserProfile 返回 TryCast(创建(用户名),用户配置文件) 结束函数

    Public Shared Function GetUserProfile() As UserProfile
        Return TryCast(Create(Membership.GetUser().UserName), UserProfile)
    End Function

    <SettingsAllowAnonymous(False)> _
    Public Property role() As String
        Get
            Return TryCast(MyBase.Item("role"), String)
        End Get
        Set(value As String)
            MyBase.Item("role") = value
        End Set
    End Property


    <SettingsAllowAnonymous(False)> _
    Public Property UsersCustomConnectionString() As String
        Get
            Return TryCast(MyBase.Item("UsersCustomConnectionString"), String)
        End Get
        Set(value As String)
            MyBase.Item("UsersCustomConnectionString") = value
        End Set
    End Property


End Class

然后我可以像这样读取我的连接字符串

Dim currentprofile As UserProfile = UserProfile.GetUserProfile() 
Dim strcon As String = currentprofile.UsersCustomConnectionString

我该如何解决这个问题? 还是我应该使用另一种方法来解决“许多连接字符串”问题?如果是,如何? (我认为会话变量不起作用)

提前致谢

【问题讨论】:

    标签: asp.net database-connection asp.net-membership connection-string user-management


    【解决方案1】:

    这就是我们所做的:在 web.config 中为每个连接字符串放入一个条目

    <appSettings> 
    

    这样的部分:

    <add key="connection_string_key" value="YourDBServerConnectionString"/>
    


    然后你像这样从你的数据库访问类中读取值:

    System.Configuration.ConfigurationManager.AppSettings[connection_string_key]
    

    如果您想动态更改它们,请创建一些工厂类,您可以在其中读取它们并根据当前用户的角色或他们是否登录返回正确的连接字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多