• 在创建从 ASP.NET 到 SQL Server 的受信任数据连接时出现错误消息:“Login failed for user:'AccountName'”(用户 'AccountName' 登录失败)


    *****************************************************************************

    本机运行没有问题,但发布到服务器是报出这个错误,后来把"Integrated Security = SSPI"删除就可以了,但是我并不明白是什么原因造成的,还请高手指点一二呀!!

    *****************************************************************************

    症状

    在创建从 Microsoft ASP.NET 到 Microsoft SQL Server 的受信任连接时,可能收到以下错误消息:
    用户 'MachineName\ASPNET 登录失败
    对于运行 Internet 信息服务 (IIS) 6.0 的计算机,您可能会收到以下错误消息:
    用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败
    注意:特别是在使用集成安全性(在连接字符串中包括 integrated security=sspi 属性)时,会收到上述两条错误消息之一。

    回到顶端

    原因

    使用 ASP.NET 时,对于 Aspnet_wp.exe(或者对于在 IIS 6.0 上运行的应用程序而言,为 W3wp.exe)和发往 SQL Server 的请求,默认的安全上下文都是 ASPNET 帐户(或者对于在 IIS 6.0 上运行的应用程序而言,为 NetworkService 帐户)。默认情况下,ASPNET 帐户(或者对于在 IIS 6.0 上运行的应用程序而言,为 NetworkService 帐户)在 SQL Server 中没有任何权限,因此它不能访问数据库。

    回到顶端

    解决方案

    要解决此问题,请使用下列方法之一:
    方法 1 以编程方式将 ASP.NET 工作进程的安全上下文更改为具有正确 SQL Server 权限的用户。
    方法 2 更改 ASP.NET 的默认配置,以便 ASP.NET 工作进程在满足以下条件的用户的上下文中启动和运行:该用户在 SQL Server 中具有正确的权限。
    方法 3 授予在 SQL Server 上的正确权限,以便 ASPNET 帐户(或者对于在 IIS 6.0 上运行的应用程序而言,为 NetworkService 帐户)具有访问所需资源的适当权限。

    注意:该方法可使该服务器上的所有 Web 应用程序在正在运行 SQL Server 的计算机上都具有相应权限。

    回到顶端

    状态

    这种现象是设计导致的。

    回到顶端

    更多信息

    重现此问题的步骤

    1. 在同时运行 ASP.NET 和 SQL Server 的计算机上创建一个新的 Microsoft Visual Basic .NET Web 应用程序。
    2. 将以下代码添加到使用该项目创建的 Webform1.aspx 页面的 Page_Load 事件中:
    Dim con As New System.Data.SqlClient.SqlConnection("data source=localhost;integrated security=sspi;database=northwind")
                con.open()
                con.close()
    3. 生成该项目,然后在浏览器中打开 Webform1.aspx 页。
    4. 将会收到在“症状”一节中提到的错误消息。

    回到顶端

    参考

    有关如何以编程方式更改 ASP.NET 工作进程的安全上下文的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    306158 (http://support.microsoft.com/kb/306158/) 如何在 ASP.NET 应用程序中实现模拟
    307002 (http://support.microsoft.com/kb/307002/) PRB:ASP/ODBC/SQL Server“Login failed for user '(null)'”(用户 '(null)' 登录失败)错误 0x80040E4D
    253500 (http://support.microsoft.com/kb/253500/) PRB:从 ASP 连接到 SQL Server 时出现“Client Unable to Establish Connection”(客户端无法建立连接)错误消息
    306586 (http://support.microsoft.com/kb/306586/) PRB:与 ASP 中的错误 80004005“Login Failed”(登录失败)相关的疑难解答
    247931 (http://support.microsoft.com/kb/247931/) 在 Active Server Page 中连接到 SQL Server 使用的身份验证方法
    315158 (http://support.microsoft.com/kb/315158/) FIX:ASP.NET 在域控制器上使用默认 ASPNET 帐户不能正常运行
    824308 (http://support.microsoft.com/kb/824308/) BUG:在安装了 SP4 的 Windows 2000 域控制器上,未授予 IWAM 帐户对 ASP.NET 1.1 的模拟权限
    有关如何更改 ASP.NET 安全上下文的默认配置的更多信息,请访问下面的 Microsoft Developer Network (MSDN) 网站:
    http://msdn2.microsoft.com/en-us/library/ms978378.aspx (http://msdn2.microsoft.com/en-us/library/ms978378.aspx)
    有关如何向 SQL Server 添加 ASPNET 帐户的更多信息,请参见 SQL Server 联机丛书中的“添加 Windows 用户或组”主题。
  • 相关阅读:
    计算机网络——简单的端口扫描器
    Java课程设计——模拟行星运动
    H5 自定义数据属性
    实时获取网络状态
    Web 存储
    关于节流阀的理解
    DOM元素尺寸和位置
    H5选择符api
    HTML和XHTML的区别
    HTML的发展史
  • 原文地址:https://www.cnblogs.com/xuyuantao/p/1055730.html
Copyright © 2020-2023  润新知