我们有许多本地安装的 .Net 应用程序,它们通过 Web 服务进行通信。IIS 中的身份验证由 Windows 身份验证处理,因此不需要额外的登录。我们最近开始看到一个问题,即当用户的密码重置在密码过期通知期限(目前为 7 天)内时,用户会收到 IIS 403 禁止错误。
由于这有时会发生在中午(早上登录正常,但密码在一天中达到 < 7 天),这令人惊讶,因为他们没有被警告更改密码。当然,我希望他们应该能够工作,直到密码过期。
对这里可能发生的事情有任何想法吗?如果密码实际上没有过期,为什么 IIS 会拒绝登录?我们可以改变这种行为吗?
谢谢
\\格雷格
您可能会在 Web 日志中看到 403.18 错误。您是否有配置为从不同的应用程序池运行的错误页面?看看这里:http: //blogs.msdn.com/b/rakkimk/archive/2006/09/01/735684.aspx
在这里(描述了一个非常相似的问题): http ://social.technet.microsoft.com/forums/en-US/exchangesvrgeneral/thread/0f96332b-5b53-42f6-8f12-7d0b79a0a636/
鉴于解决这个问题有多么困难,我想用最终结果来回答我的问题。
该问题与 IIS 和 PasswordChange 通知有关。在所有服务器上,我们都删除了 /IISpwdadm。这是 IIS 内置的功能,允许交互式用户更改他们的密码。
显然,当我们的用户密码进入通知期时,Web 服务会尝试将他们重定向到 /iispwdadm/anot.asp。由于这在 Web 服务的路径之外并且在不同的应用程序池中,因此生成了 403 错误。
解决方案是使用 adsutil 将 changepasswordflags 设置更改为 6,从而禁用 IIS 的通知和密码更改功能。
另请注意,我们的 Web 服务位于 BigIP 后面的池中。由于源地址是池地址,所有这些重定向都集中到池中的单个服务器。这使得在日志中查找 403 事件有点棘手。
再次感谢 DmitryK 带领我们走上正确的道路。