如何在web.config中设置密码和用户名

rue*_*edi 1 security asp.net-mvc web-config

在我的MVC应用程序中,我使用连接字符串在Web.config中设置

Private connectionString As String = ConfigurationManager.ConnectionStrings("DBCS").ConnectionString
Run Code Online (Sandbox Code Playgroud)

并且我的数据库连接没有问题.但由于我需要一个密码和用户名来登录我的数据库,我在web.config中对其进行了硬编码

<connectionStrings>
    <add name="DBCS" connectionString="server=win\SQLExpress;database=myDb; uid=myUsername;password=myPassword" providerName="System.Data.SqlClient" />
  </connectionStrings>
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法从用户界面发送密码和用户名到config.web文件首先我认为ConfigurationManager类应提供一个属性,但我找不到.任何人都可以向我解释如何做到这一点?

enb*_*081 6

您可以在应用设置中保存此值:

<appSettings>
  <add key="DBCS" value="Data Source=win\SQLExpress;Initial Catalog=myDb;User ID={0};Password={1}" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

然后执行以下操作:

using System.Data.SqlClient; 


  public void DoDatabaseOperations(string _Username, string _Password)
  {
    string connetionString = null;
    SqlConnection cnn ;
    connetionString = string.Format(ConfigurationManager.AppSettings("DBCS"), _Username, _Password);
    cnn = new SqlConnection(connetionString);
    try
    {
        cnn.Open();

        // your code here

        cnn.Close();
    }
    catch (Exception ex)
    {
        // handle exception
    }
  }
Run Code Online (Sandbox Code Playgroud)

VB.NET等效:

Imports System.Data.SqlClient

Public Sub DoDatabaseOperations(_Username As String, _Password As String)
    Dim connetionString As String = Nothing
    Dim cnn As SqlConnection
    connetionString = String.Format(ConfigurationManager.AppSettings("DBCS"), _Username, _Password)
    cnn = New SqlConnection(connetionString)
    Try
        cnn.Open()

        ' your code here

        cnn.Close()
            ' handle exception
    Catch ex As Exception
    End Try
End Sub
Run Code Online (Sandbox Code Playgroud)