我有一个客户提供的数据库,配置了多个用户。每个用户都有自己的用户名/密码等,这些是SQL Server的数据库登录。
在旧版软件中,系统会要求用户输入数据库和密码,然后使用这些数据库和密码在代码中形成连接字符串。
我的任务是更换大量的数据库代码,我需要一种方法来快速检查数据库的用户名和密码。目前,使用Linq,如果密码不正确,我最终得到一个System.Data.SqlClient.SqlException
,但实际抛出需要一段时间(我假设超时?)。
有人知道我可以快速测试我的用户名/密码组合对数据库吗?
答案 0 :(得分:0)
您可以尝试通过ADO打开连接,并减少超时
SqlConnection conn = new SqlConnection (yourconnectionstring + ";Connection Timeout=1;");
try
{
conn.Open();
conn.Close();
}
catch (SqlException ex)
{
if (ex.Number == 18456)
{
// invalid login
}
}
18456是SQL无效登录
默认连接超时为15秒。
答案 1 :(得分:-1)
我认为你不希望数据库(或其他任何东西)能够告诉你,你传入的凭据是不正确的。为什么?因为这允许强力检查。即使引入一小段延迟也会阻碍这种尝试。