ASP.NET/SQL Server应用程序:用户登录失败';NT授权\匿名登录';

ASP.NET/SQL Server应用程序:用户登录失败';NT授权\匿名登录';,asp.net,.net,sql-server,windows-security,Asp.net,.net,Sql Server,Windows Security,我有一个旧的应用程序,我正在做一些维护。它是用Visual Studio 2008、ASP.NET Web窗体、SQL Server和.NET 3.5构建的。应用程序使用由ActiveDirectoryMembershipProvider支持的表单身份验证 计算机存在于两个域中 这些域名是: 开发PC:companydomain 测试服务器:dev.companydomain 开发人员SQL Server:companydomain 该应用程序在我的开发PC上运行良好,并连接到Dev SQL

我有一个旧的应用程序,我正在做一些维护。它是用Visual Studio 2008、ASP.NET Web窗体、SQL Server和.NET 3.5构建的。应用程序使用由
ActiveDirectoryMembershipProvider
支持的表单身份验证

计算机存在于两个域中

这些域名是:

  • 开发PC:companydomain
  • 测试服务器:dev.companydomain
  • 开发人员SQL Server:companydomain
该应用程序在我的开发PC上运行良好,并连接到Dev SQL Server。一切都在同一个领域

当部署到测试服务器进行测试时,当应用程序连接到数据库时会引发异常。浏览器在Dev PC上运行。应用程序是使用我的凭据(companydomain\myusername)登录的。测试服务器还连接到Dev SQL服务器

错误是:

Error: SqlException (18456): Procedure:  Line: 65536 State: 1 Message: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.
我已运行SQL Server探查器跟踪并获得以下信息:

Audit Login Failed  Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.   .Net SqlClient Data Provider    ANONYMOUS LOGON NT AUTHORITY\ANONYMOUS LOGON                    3208    90  2014-02-24 15:40:43.313         
Web.config

IIS身份验证设置 测试服务器上的设置

我添加了一些日志代码来转储当前用户
Thread.CurrentPrincipal.Identity
返回已登录到应用程序的Windows用户
WindowsIdentity.GetCurrent()
返回NT权限\IUSR


是什么导致了异常?为什么身份“匿名登录”通过数据库连接而不是经过身份验证的用户?

您的连接字符串是否具有“Integrated security=true”?它具有
Integrated security=SSPI.OK,SSPI将提供的用户名和密码发送到连接。如果没有用户名和密码,它将发送当前登录的用户。连接字符串是否提供用户名和密码?如果没有用户名和密码,则它正在尝试使用运行w3wp.exe服务的用户。您是否已更改IIS中的设置以允许基本身份验证?您在IIS>网站>基本设置>连接到开发人员pc和测试服务器中提到了什么?
<authentication mode="Forms">
  <forms name=".ASPXFORMSAUTH" loginUrl="Default.aspx" />
</authentication>
<identity impersonate="true">
</identity>

<Connection name="Connection Name" connectionString="Data Source=DatabaseServer;Initial Catalog=DatabaseName;Integrated Security=SSPI;"/>