2

我有一个旧版应用程序,我正在对其进行一些维护。它是用 Visual Studio 2008、ASP.NET Web Forms、SQL Server 和 .NET 3.5 构建的。该应用程序使用由ActiveDirectoryMembershipProvider.

这些计算机位于两个域中。

域是:

  • 开发 PC:companydomain
  • 测试服务器:dev.companydomain
  • 开发 SQL Server:公司域

该应用程序在我的开发 PC 上运行良好并连接到 Dev SQL Server。一切都在同一个域中。

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

错误是:

Error: SqlException (18456): Procedure:  Line: 65536 State: 1 Message: Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'.

我运行了 SQL Server Profiler 跟踪并获得以下信息:

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         

网页配置

<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;"/>

IIS 身份验证设置

测试服务器上的设置。

IIS 身份验证设置

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

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

4

0 回答 0