我正在制作一个简单的带有form1的c#.net winform应用程序,它将连接到sql server。
我希望在建立到sql server的连接之前,应用程序要求用户输入登录名和密码以进行连接。
为此,我应该做什么:
在两个文本框中输入登录名和密码,并将它们传递给连接字符串,或者我应该将它们传递给app.config文件,然后在form1.cs中使用app.config文件中的字符串?
这样做可以解决安全问题吗?如果不是,那么实现这项任务的其他方法是什么?
发布于 2011-03-01 07:47:59
我会这样做:
SQL component
app.config
SqlConnectionStringBuilder
的正确连接字符串更新:
我的建议是像这样存储基本连接字符串:
<configuration>
<connectionStrings>
<add name="MyConnStr"
connectionString="server=A9;database=MyDB;" />
</connectionStrings>
</configuration>
然后加载这个“骨架”连接字符串(这是不完整的--单靠它是行不通的!)进入你的SqlConnectionStringBuilder
string myConnStr = ConfigurationManager.ConnectionStrings["MyConnStr"].ConnectionString;
SqlConnectionStringBuilder sqlcsb = new SqlConnectionStringBuilder(myConnStr);
然后在对话框中从用户那里获取用户名和密码,并将其添加到连接字符串构建器中:
sqlcsb.UserID = tbxUserName.Text.Trim();
sqlcsb.Password = tbxPassword.Text.Trim();
然后从SqlConnectionStringBuilder
获取得到的完整的连接字符串
string completeConnStr = sqlcsb.ConnectionString;
using(SqlConnection _con = new SqlConnection(completeConnStr))
{
// do whatever you need to do here....
}
发布于 2011-03-01 07:48:39
将登录名传递给连接字符串。app.Config不是存储用户交互的地方。
发布于 2011-03-01 07:51:36
实现它的另一种方法可能是在SQL服务器上使用Windows身份验证进行身份验证。这样,本地Windows用户就可以对数据库拥有一定的安全特权,而应用程序的用户就不一定需要输入任何凭据。
凭证是用来做什么的?它们是用于建立与数据库的连接,还是用于访问应用程序中的用户帐户条目和安全权限?
https://stackoverflow.com/questions/5151733
复制