SQL Windows Auth



>我有一个使用 IIS 设置的本地测试环境。我正在使用下面的连接字符串通过我的窗口身份验证在 ASPX 页面的代码隐藏中与 c# 连接。我收到 [PCNAME]/ASPNET 登录失败的错误。为什么用户名 ASPNET 在我指定连接字符串以使用我的登录名时尝试登录?

user id=[UID];password=[PASS];server=[LOCALSERVER];database=db_specialOps;Trusted_Connection=yes

受信任的身份验证使用正在执行进程的用户的凭据。 如果将其指定为 yes,则忽略连接字符串中的用户名和密码。

在这种情况下,ASPNET 用户帐户是运行进程的用户,因此这是用于连接到 SQL Server 的帐户。

检查,另一个SO问题解决了这个问题。

使用 Trusted_Connection=true 和 SQL Server 身份验证时,这是否会影响性能?

删除连接字符串的Trusted_Connection=yes部分。它告诉 sql 客户端库使用 Windows 身份验证连接到 sql 服务器,并使用当前进程的 Windows 标识。在 ASP.NET 情况下,这是[PCNAME]/ASPNET.这就是您看到该错误消息的原因。

如果你想使用sql auth,只需提供用户名和密码 - 没有Trusted_Connection=yes部分。

Windows 身份验证的连接字符串:

connectionString="Server=MyServer;Database=MyDb;Trusted_Connection=Yes"

connectionString="Initial Catalog=MyDb;Data Source=MyServer;Integrated Security=SSPI;"

无用户/通行证


使用用户/传递进行 SQL 身份验证的连接字符串

connectionString="Server=MyServer; Database=pubs; User Id=MyUser; password= P@ssw0rd"
        providerName="System.Data.SqlClient"

另请参阅此问题,可能会对您有所帮助:使用 Windows 身份验证和特定帐户连接到 SQL Server

最新更新