首页 > 编程 > .NET > 正文

ASP.NET与SQLServer数据连接时出现登录失败错误信息

2024-07-10 13:11:44
字体:
来源:转载
供稿:网友

  症状

  在创建从 asp.net 到 sql server 的受信任连接时,可能会出现以下错误信息:

  login failed for user 'machinename/aspnet

  for computers that run internet information services (iis) 6.0, you may receive the following error message:

  login failed for user 'machinename/networkservice

  注意:特别是在使用集成安全性(在连接字符串中包括 integrated security=sspi 属性)时,会出现上述错误信息中的某一个。

  原因

  当您使用 asp.net 时,对于 aspnet_wp.exe (或者对于 在 iis 6.0 上运行的应用程序而言,为 w3wp.exe)和发往 sql server 的请求,默认的安全上下文都是 aspnet_wp 帐户(或者对于在 iis 6.0 上运行的应用程序而言,为 networkservice 帐户)。默认情况下,aspnet_wp 帐户(或者对于在 iis 6.0 上运行的应用程序而言,为 networkservice 帐户)在 sql server 中没有任何权限,因此它不能访问数据库。

  解决方案

  要解决此问题,请使用下列方法之一。

   • 以编程方式将 asp.net 辅助进程的安全上下文更改为具有正确的 sql server 权限的用户。

  - 或者 -

  • 更改 asp.net 的默认配置,以便 asp.net 辅助进程在满足以下条件的用户的上下文中启动和运行:该用户在 sql server 中具有正确的权限。

  - 或者 -

  • 授予 sql server 上的正确权限,以便 aspnet_wp 帐户(或者对于在 iis 6.0 上运行的应用程序而言,为 networkservice 帐户)具有访问所需资源的适当权限。

  状态

  出现这种现象的原因是缘于设计如此。

  再现此问题的步骤

  1. 在任何同时运行 asp.net 和 sql server 的计算机上,创建一个新的 microsoft visual basic .net web 应用程序。

  2. 将以下代码添加到随该项目一起创建的 webform1.aspx 页的 page_onload 事件中:dim con as new system.data.sqlclient.sqlconnection("data source=localhost;integrated security=sspi;database=northwind")

  con.open()

  con.close()

  3. 生成该项目,然后在浏览器中打开 webform1.aspx 页。您将看到本文“症状”部分描述的错误信息。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表