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

时间:2016-07-29 15:23:04

标签: asp.net asp.net-mvc u2netdk rocket-u2

我有一个C#Winforms应用程序,我正在移植到ASP.NET。一切正常,但与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" />

在我的班上,我有以下内容:

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

        return con;
}

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

1 个答案:

答案 0 :(得分: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,或者至少为用户必须输入凭据的页面使用HTTPS。