的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。
假设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'
这属于serverfault – 2009-07-15 19:44:15