“登录失败,用户‘’”试图使用Windows身份验证

问题描述:

在我的ASP.NET的web.config时,我有连接字符串:“登录失败,用户‘’”试图使用Windows身份验证

initial catalog=DatabaseName; data source=(local); Integrated Security=SSPI;MultipleActiveResultSets=True; Connect Timeout=200; 

我以前使用Windows身份验证此连接字符串,但现在我发现了错误:

Login failed for user ''. 

这似乎是它的一个SQL身份验证错误,而我还没有提供任何用户名或密码的用户名是空白。

为什么应用程序尝试SQL身份验证而不是Windows?

我怎样才能解决这个问题?

为了使连接字符串能够从ASP.NET应用程序工作,您的请求必须以可以访问SQL Server的用户身份运行。默认情况下,它将使用应用程序池工作进程的身份,并且通常此身份是无法访问SQL Server的本地用户(在服务器上)。所以你可以尝试改变这个身份,看看是否有帮助。

如果您想要使用访问您的ASP.NET网站的Windows用户的身份,那么您已经在IIS和ASP.NET中都启用了集成身份验证。您还需要打开ASP.NET impersonation以便ASP.NET请求将以用户身份执行。

如果您仍然面临问题,那么您可能会面临与windows身份验证相关的double hop issue(请参阅文章中关于更多信息和疑难解答的两个链接)。