ASP.NET/SQL Server应用程序:用户登录失败';NT授权\匿名登录';
我有一个旧的应用程序,我正在做一些维护。它是用Visual Studio 2008、ASP.NET Web窗体、SQL Server和.NET 3.5构建的。应用程序使用由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
ActiveDirectoryMembershipProvider
支持的表单身份验证
计算机存在于两个域中
这些域名是:
- 开发PC:companydomain
- 测试服务器:dev.companydomain
- 开发人员SQL Server:companydomain
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;"/>