如何使用C#从oracle连接字符串中获取oracle用户实例的密码?

如何使用C#从oracle连接字符串中获取oracle用户实例的密码?,c#,oracle,C#,Oracle,我想从App.config文件中存储的连接字符串中获取oracle db实例的用户id和密码。 下面是存储在App.Config文件中的连接字符串 <add name="MyConnection" connectionString="Data Source=xe;User ID=UsmanDBA;Password=root;" providerName="System.Data.SqlClient" /> 此方法不返回用户id,但不返回密码 我有什么遗漏吗?还是有其他方法可以做

我想从App.config文件中存储的连接字符串中获取oracle db实例的用户id和密码。 下面是存储在App.Config文件中的连接字符串

<add name="MyConnection" connectionString="Data Source=xe;User ID=UsmanDBA;Password=root;"   providerName="System.Data.SqlClient" />
此方法不返回用户id,但不返回密码 我有什么遗漏吗?还是有其他方法可以做到这一点?
请帮我整理一下。

您可以使用
SqlConnectionStringBuilder

string conString = ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;
OracleConnectionStringBuilder builder = new  OracleConnectionStringBuilder(conString);
string user = builder.UserID;
string pass = builder.Password;

ConnectionString属性从不包含密码。这就是安全措施。在您的代码中,此行中的密码已丢失:

builder.ConnectionString = con.ConnectionString;
你必须想出一个不同的方法。例如,从配置中读取连接字符串,然后将其提供给连接字符串生成器。如果您只有连接,并且没有构造配置项的信息,那么这可能不适用于一般情况


另一方面,SQLServerConnection(SqlConnection)公开了可用于读取密码的凭据属性(我实际上还没有尝试过)。我不知道Oracle连接实现中有类似的属性。

那么现在我该怎么办?我是否应该读取app.config文件以获取密码?如果您确定连接字符串来自哪个配置文件条目,则使用该条目向连接字符串生成器提供信息。不要从连接对象获取连接字符串,因为出于安全原因,连接会混淆连接字符串。这不是方法。。你能给我一些建议吗?你说这不是方法是什么意思,它工作得很好,你试过了吗?我在
App.Config
部分添加了你提供的连接字符串,它工作了。如何以及在何处添加连接字符串,然后单击“确定”。。谢谢兄弟刚刚将SqlConnectionStringBuilder更改为OracleConnectionStringBuilder
builder.ConnectionString = con.ConnectionString;