我有一个使用 IIS 设置的本地测试环境。我正在使用下面的连接字符串在 ASPX 页面的代码隐藏中使用我的 windows auth 连接 c#。我收到 [PCNAME]/ASPNET 登录失败的错误。为什么当我指定我的连接字符串以使用我的登录时,用户名 ASPNET 试图登录?
user id=[UID];password=[PASS];server=[LOCALSERVER];database=db_specialOps;Trusted_Connection=yes
我有一个使用 IIS 设置的本地测试环境。我正在使用下面的连接字符串在 ASPX 页面的代码隐藏中使用我的 windows auth 连接 c#。我收到 [PCNAME]/ASPNET 登录失败的错误。为什么当我指定我的连接字符串以使用我的登录时,用户名 ASPNET 试图登录?
user id=[UID];password=[PASS];server=[LOCALSERVER];database=db_specialOps;Trusted_Connection=yes
受信任的身份验证使用正在执行该过程的用户的凭据。如果指定为 yes,则连接字符串中的用户名和密码将被忽略。
在这种情况下,ASPNET 用户帐户是运行该进程的用户,因此这是用于连接到 SQL Server 的帐户。
检查,另一个 SO question 解决了这个问题。
删除Trusted_Connection=yes
连接字符串的一部分。它告诉 sql 客户端库使用 Windows 身份验证以当前进程的 Windows 身份连接到 sql 服务器。在 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"
另请参阅此问题,可能对您有所帮助: Connect to SQL Server using windows authentication and specific account