如何提示输入连接字符串的用户名和密码?

How can I prompt for a username and password for a connection string?

我有一个要移植到 ASP.NET 的 C# Winforms 应用程序。一切正常,但与我的 Universe 数据库的连接目前使用我的个人名称和密码。相反,我想获取用户名和密码。

web.config 中将以下内容添加到 connectionStrings

<add name="U2Connection" connectionString="Database=MY_DB;User ID=myuserid;
Password=mypassword;Server=MY_SERVER;ServerType=UNIVERSE;AccessMode=Native;
RpcServiceType=uvcs" providerName="U2.Data.Client" />

在我的 class 中,我有以下内容:

public static U2Connection GetU2ConWebConfig()
{
        string conn_str = ConfigurationManager.ConnectionStrings["U2Connection"].ToString();
        U2Connection con = new U2Connection();
        con.ConnectionString = conn_str;
        con.Open();

        return con;
}

如何提示当前用户输入他们的 Universe username/password 并将其传递给连接字符串?我知道我可以在 .cshtml 页面上制作 2 个文本框并将其与其余表单数据一起传递,但是是否有更好或更安全的方法?

您可以像这样更改连接字符串:

<add name="U2Connection" connectionString="Database=MY_DB;User ID={0};Password={1};Server=MY_SERVER;ServerType=UNIVERSE;AccessMode=Native;RpcServiceType=uvcs" providerName="U2.Data.Client" />

然后你可以通过String.Format()传递用户名和密码给它:

string userName = "User";
string password = "Password";
string connectionString = String.Format(ConfigurationManager.ConnectionStrings["U2Connection"].ConnectionString, userName, password);

关于安全性 - 我建议为您的网站或至少为用户必须输入其凭据的页面使用 HTTPS。