【问题标题】:C# .NET remote DB connectionC# .NET 远程数据库连接
【发布时间】:2016-10-05 08:58:40
【问题描述】:

所以我有这个团队服务共享项目,我在本地提取。我正在连接到需要凭据才能对其执行任何操作的远程数据库。一切正常,我的connectionString如下:

<add name="PluginSchedulerContext"
   connectionString="metadata=res://*/PluginSchedulerDataModel.csdl|res://*/PluginSchedulerDataModel.ssdl|res://*/PluginSchedulerDataModel.msl;provider=System.Data.SqlClient;

     provider connection string=&quot;
     data source=xxx.xxx.xxx.xxx;
     initial catalog=TestDB;
     persist security info=True;
     user id=xxx;
     password=xxx;
     MultipleActiveResultSets=True;
     App=EntityFramework&quot;"

   providerName="System.Data.EntityClient" />

我想知道是否有更聪明的方法可以做到这一点并省略字符串中的密码字段,因为我看到app.config 不是.gitignore 的一部分。 (我是从 Laravel PHP 迁移过来的)

【问题讨论】:

    标签: c# .net database visual-studio azure-devops


    【解决方案1】:

    更好的方法是,你可以改变connectionstring连接到另一个数据库(测试数据库),然后你可以通过build或@将app部署到服务器时,通过Replace Token task替换connectionstring连接到实际的数据库。 987654323@.

    如果您只想使用数据库,可以通过编程方式指定连接字符串。 (加密密码,然后将加密密码存储到您的应用程序中,然后解密密码并将连接字符串与实际密码组合并将其指定给实体上下文。解密本地可以在附加程序集中。)

    var encryptedPassword="xxx";
    var actualPassword=[decrypt password];
    var connstring = [combine connectionstring with actual password];
    var estringnew = new EntityConnectionStringBuilder(connstring);
    estringnew.Metadata = XXX
    var context = new BAEntities(estringnew.ToString());
    var query =
        from con in context.Contacts
        where con.Addresses.Any((a) => a.City == "Seattle")
        select con;
    

    更多信息,可以参考this文章。通过这种方式,开发者可以调试应用程序以了解实际密码。

    如果不想让开发者知道实际密码,可以encrypt connectionstring

    【讨论】:

      【解决方案2】:

      如果您使用 Windows 身份验证(客户端和数据库访问使用相同的 Windows 登录名),则源代码中不需要用户名和密码。

      或者您需要在部署时编辑配置。

      否则凭据在您的 VCS 中的项目配置中。

      【讨论】:

      • SQL 身份验证是我无法控制的部分......所以很遗憾没有 WinAuth。那我想是不可能的
      【解决方案3】:

      尝试使用实体框架。这要容易得多! https://www.asp.net/entity-framework

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-01-24
        • 1970-01-01
        • 1970-01-01
        • 2013-10-23
        • 1970-01-01
        • 2016-08-05
        • 2013-05-22
        相关资源
        最近更新 更多