我们有一些本地安装的.Net应用程序通过Web服务进行通信。 IIS中的身份validation由Windows身份validation处理,因此不需要其他login。 我们最近开始看到一个问题,那就是当用户在密码重置在密码过期通知期限(7天之内)的时候出现了IIS 403禁止错误。
由于这种情况有时会发生在中午(早上login确定,但是密码在白天的时间达到了7天以内),这一点让人感到意外,因为他们没有被警告要更改密码。 当然,我希望他们应该能够工作,直到密码过期。
任何想法可能发生在这里? 为什么IIS会拒绝login,如果密码没有真正过期? 我们可以改变这种行为吗?
谢谢
\\格雷格
您的networking日志中可能会看到403.18错误。 你有没有configuration错误页面从不同的应用程序池运行? 看看这里: 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。 这是IISbuild立的function,允许交互式用户更改密码。
很明显,当我们的用户密码进入通知期时,Web服务会尝试将它们redirect到/iispwdadm/anot.asp。 由于这是超出Web服务的path,并在不同的应用程序池中,生成403错误。
解决方法是使用adsutil将changepasswordflags设置更改为6,从而禁用IIS的通知和密码更改function。
cscript adsutil.vbs set w3svc/passwordchangeflags 6 cscript adsutil.vbs set w3svc/1/passwordchangeflags 6
还有一点需要注意的是,我们的Web服务位于BigIP后面的一个池中。 所有这些redirect都集中在池中的一台服务器上,因为源地址是池地址。 这使得在日志中查找403个事件有点棘手。
再次感谢DmitryK为我们带来了正确的道路。