的SQL Server 2000 + ASP.NET:登录失败,用户NT AUTHORITY \ ANONYMOUS登录

问题描述:

我只是迁移的开发工作站的SQL Server 2000 + ASP.NET:登录失败,用户NT AUTHORITY ANONYMOUS登录

  • FROM:的Windows XP专业版SP3与IIS 6
  • TO:Vista企业版64位与IIS 7

由于此举,我的访问SQL Server 2000数据库的页面之一是从我的ASP.NET 2.0网页收到以下错误:“登录失败的用户'NT AUTHORITY \ ANONYMOUS登录”“。

我:

  • 启用Windows身份验证在IIS和web.config中
  • 禁用匿名身份验证在IIS
  • 设置模拟为验证的用户运行
  • 验证了登录用户(在这种情况下,我)有权访问SQL Server上的相应数据库
  • 验证我的登录和模拟信息在ASP.NET页面中是否正确盛泰User.Identity.Name和System.Security.Principal.WindowsIdentity.GetCurrent()名称(都显示我的用户名)

使用的SqlConnection我的连接字符串为“server = {SERVER_NAME};数据库= {} DB_NAME ;集成安全性= SSPI; Trusted_Connection = True;“

为什么它试图用NT AUTHORITY \ ANONYMOUS LOGIN登录?我必须假定它是IIS7特有的一些设置或web.config条目,因为它在迁移之前工作正常。

注意:SQL Server仅限Windows身份验证 - 不能使用混合模式或SQL。

+0

这属于serverfault – 2009-07-15 19:44:15

假设SQL Server安装在一个单独的盒子,是一个域

您的工作站需求代表团能在Active Directory中通过凭证(“登录凭证”),并允许模拟工作。它看起来像这是你正在尝试根据你的其他步骤,

你需要在活动目录中设置一个SPN。假设你有中介服务器上的域名服务帐户运行SQL服务器,你需要运行在域控制器上此链接:为中介服务器名称(

setspn -A MSSQLSvc/SERVERNAME.domain.name:1433 domainname\SQLServiceAccount 

转出SERVERNAME多数民众赞成在访问一个代表您的SQL 2000框),确保您使用完全限定域名(IE。Myserver.mycompany.local),然后domainname \ SQLServerAccount是您用来运行SQL服务的帐户(IE帐户这将代表您访问SQL 2000框)。

如果您想了解更多详细信息,请参阅MSDN上的一篇文章 - http://technet.microsoft.com/en-us/library/bb735885.aspx。如果遇到任何问题,请回复。

在SSMS中运行

EXEC master ..sp_addsrvrolemember @loginame = N'NT SERVICE \ MSSQLSERVER',@rolename = N'sysadmin'