Web应用程序在调用数据库时丢失凭据

时间:2013-12-04 17:02:19

标签: asp.net vb.net iis iis-7

我有一个Web服务器和一个单独的数据库服务器。这是一个内部网页,因此不在外部DMZ上。 IIS网站身份验证的设置是匿名禁用,启用ASP.Net,禁用表单,启用Windows。

如果我使用网页上的以下代码获取当前用户名,则可以从客户端计算机正确呈现:

lblUserName.Text = System.Web.HttpContext.Current.User.Identity.Name.ToString()

当我在Web服务器上本地运行Web站点时,数据库连接工作正常,但是当我因客户端计算机运行时由于某种原因它丢失了当前用户并尝试使用匿名凭据连接而不是通过当前Windows凭据。显示的错误消息是:用户'NT AUTHORITY \ ANONYMOUS LOGON'登录失败。 (进行数据库连接时)。

我的数据库连接字符串在web.config中设置,并具有Integrated Security =“SSPI”。在我的web.config中,我还有身份验证模式=“windows”和身份impersonate =“true”。

不确定它是否有所作为(我在IIS上不是很好,通常让公司中的其他人处理这个问题,而我现在在哪里似乎没有人真正知道他们在做什么IIS)但是在App Pool上的IIS中,我将高级设置过程模型标识设置为“ApplicationPoolIdentity”并将用户配置文件加载为True。我也尝试过Tim的建议(谢谢),使用已知的used而不是ApplicationPoolIdentity,并输入了用于运行SSRS报告的凭据,因此我知道他们拥有正确的权限,但仍然会得到相同的错误。

我是否遗漏了IIS中或通过当前用户凭据所需的web.config中显而易见的内容?

0 个答案:

没有答案