环境:
win2003 运行IIS6 服务于调用delphi 代码的asp 页面。
Delphi 代码联系一个需要登录的c# weblogin.asmx
服务 ( )。Web服务日志显示登录成功。调试结果表明Context.User.Identity.IsAuthenticated returns true
。
登录后,delphi 代码会再次检查它是否仍然经过身份验证。Web 服务返回 false -> Context.User.Identity.IsAuthenticated returns false
。
我们的猜测:运行在IIS6凭据(网络服务?)下的 delphi 代码收到的身份验证 cookie没有保存到磁盘,因此登录丢失。
Filemon 显示'C:\WINDOWS\Temp\Temporary Internet Files'
拒绝访问。授予 IIS6用户对该文件夹的管理员权限可以解决问题,但这是不可接受的,因为默认情况下 cookie 应该可以工作。
在IIS5兼容模式下运行IIS6可以解决问题,但也不是首选
想要的解决方案:问题的确切原因和配置中可能的最小修改(授予 IUSR 管理员权限不是一个选项)