我有一个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个文本框并将其与其余的表单数据一起传递,但是有更好或更安全的方法吗?
答案 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。