您的位置:首页 > 编程语言 > ASP

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

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

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



症状




原因




解决方案




状态




更多信息




重现此问题的步骤




参考


var sectionFilter = "type != 'notice' && type != 'securedata' && type != 'querywords'";
var tocArrow = "/library/images/support/kbgraphics/public/en-us/downarrow.gif";
var depthLimit = 10;
var depth3Limit = 10;
var depth4Limit = 5;
var depth5Limit = 3;
var tocEntryMinimum = 1;
.toc{display: none;}

症状

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


回到顶端


原因

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


回到顶端


解决方案

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

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


回到顶端


状态

loadTOCNode(1, 'status');
这种现象是设计导致的。


回到顶端


更多信息

loadTOCNode(1, 'moreinformation');

重现此问题的步骤

loadTOCNode(2, 'moreinformation');
1.在同时运行 ASP.NET 和 SQL Server 的计算机上创建一个新的 Microsoft Visual Basic .NET Web 应用程序。
2.将以下代码添加到使用该项目创建的 Webform1.aspx 页面的 Page_Load 事件中:
[code]Dim con As New System.Data.SqlClient.SqlConnection("data source=localhost;integrated security=sspi;database=northwind")
con.open()
con.close()

[/code]
3.生成该项目,然后在浏览器中打开 Webform1.aspx 页。
4.将会收到在“症状”一节中提到的错误消息。


回到顶端


参考

loadTOCNode(1, 'references');
有关如何以编程方式更改 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 用户或组”主题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐