我在安全服务器上运行应用程序(我必须远程访问并且必须将文件通过电子邮件发送给某人,以便将它们放到服务器上,因此在代码中进行更改并不是一个快速的过程。)
服务一度通过
抓取登录用户OperationContext.Current.ServiceSecurityContext.WindowsIdentity.Name
以前工作得很好,但是现在,无论我是否登录或者我的同事是否登录,用户都是相同的(一些通用的xyz用户)。此用户也恰好是设置的用户,因此我们可以访问站点上的虚拟目录。巧合?
系统工作正常,直到第三方或其他神秘实体(即gremlins)进入系统并改变了一切。
这是一个开发环境,所以我可以改变很多事情而没有后果。有一个类似代码的开发环境可以正常运行(返回正确登录的用户),但该系统是IIS6,而不是IIS 7,因此尝试查找相应的属性和设置一直很困难。
如何找到问题的原因?或者,什么事情可能导致这个问题?
注意: 在web.config中打开了身份验证模式和模拟,并且似乎已为该特定Web应用程序启用
<authentication mode="Windows" />
<identity impersonate="True" />
答案 0 :(得分:1)
事实证明,“身份”设置为“ApplicationPoolIdentity”,而不是“NetworkService”,将其更改为NetworkService并将“LoadUserProfile”设置为TRUE解决了问题。