环境:
win2003运行IIS6服务asp页面,调用delphi代码。
Delphi代码与需要登录( c# webservice,login.asmx)的联系。Webservice日志显示登录是成功的。调试结果表明,Context.User.Identity.IsAuthenticated returns true。
登录后,delphi代码,如果它仍然是认证的双重代码。Webservice返回false -> Context.User.Identity.IsAuthenticated returns false。
我们的猜测:在IIS6凭据(网络服务?)下运行的delphi代码接收到的身份验证cookie。没有保存到磁盘,因此登录丢失。
Filemon显示'C:\WINDOWS\Temp\Temporary Internet Files'访问被拒绝。在该文件夹上授予IIS6用户管理权限可以解决问题,但这是不可接受的,因为cookie在默认情况下应该可以工作。
在IIS6中运行IIS5兼容性模式可以解决问题,但也不是首选。
想要的解决方案:问题的确切原因和配置中可能发生的最小修改(授予IUSR管理员权限不是一个选项)
发布于 2008-11-26 14:03:01
Cookie在默认情况下是可以工作的,但是您必须有地方存储它们。如果您不想访问它们存储的正常位置,那么您需要设置另一个目录,您可以赋予它权限,并将其设置为IIS6用户的internet缓存。
发布于 2011-08-26 03:45:32
对于这种类型的问题,您有相当多的潜在问题,请参阅这,这几个快速资源可能会有所帮助。
IIS5和IIS6之间的一个重要区别是,Windows 2003在SP1更新过程中经历了一个重要的安全锁定。在Windows 2000中,有很多东西在2003年才起作用(而且不应该如此--它们为各种各样的恶作剧打开了大门)。试图查找IIS6锁定东西的所有地方可能会很有挑战性,相反,我会使用上面的资源来跟踪人们在IIS6中遇到的常见问题。
https://stackoverflow.com/questions/320761
复制相似问题