问题描述
我们正在使用MVC4创建一个Web应用程序,并使用IIS托管该应用程序。我们在应用程序池中使用服务帐户作为用户以前连接到数据库。现在我们希望用户使用其Windows凭据来连接到数据库我们使用身份验证模式为“ Windows”,并模拟为“ true”
在IIS身份验证中,我们启用了Windows身份验证和ASP.net模拟。
但是,当我尝试从应用程序连接到数据库时,出现以下错误
“用户'NT AUTHORITY \ ANONYMOUS logoN'的登录失败。”
异常为“ System.Data.sqlClient.sqlException”
有人可以指导我实现以上要求吗?
解决方法
这是Kerberos Double-Hop方案,需要启用Kerberos Constrained Delegation,并且要求IIS和SQL Server为它们的服务助手具有正确的服务器主体名称(SPN)。
例如参见here和Microsoft® Kerberos Configuration Manager for SQL Server®