为什么ADO.NET仍然与错误的用户连接到SQL Server?

Noo*_*ars 0 c# sql-server asp.net ado.net

我正在运行Microsoft SQL Server 2014.我尝试在C#应用程序中使用ADO.NET连接到SQL Server.我的连接字符串是:

var myConnection = new SqlConnection("Data
 Source=VIRTUAL-ADMIN\\SQLEXPRESS;" +
                 "Integrated Security=SSPI;" +
                 "Initial Catalog=StudentManagement;"+
                 "User id=...;"+
                "Password=...");
Run Code Online (Sandbox Code Playgroud)

我的初始目录是一个正确的和现有的数据库.但我的用户名是错误的用户名!我插入的密码也已经错了.但是ADO.NET仍然连接到我的数据库,我可以执行查询并使用我的数据库执行所有操作.我该如何解决?

Rah*_*ngh 5

您提供了Integrated Security=SSPI;用户名和密码,因此它默认采用integrated SecurityWindows身份验证,因此您也可以使用错误的凭据进行连接.

因此,Integrated Security当您连接到SSMS时,无论是用户还是您的凭据,当它要求使用Windows authentication或时SQL Server authentication

来自MSDN: -

集成安全性如果为false,则在连接中指定用户ID和密码.如果为true,则使用当前Windows帐户凭据进行身份验证.