Windows 2003,IIS 6 Web服务登录疑难解答

时间:2008-11-26 13:57:04

标签: c# iis-6 windows-server-2003

环境:

  

win2003运行IIS6,提供调用delphi代码的asp页面。

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默认情况下应该可以使用,因此无法接受。

IIS5 兼容模式下运行 IIS6 可修复此问题,但也不是首选

通缉解决方案:确切的问题原因和配置中可能的最小修改(授予IUSR管理员权限不是一种选择)

2 个答案:

答案 0 :(得分:0)

Cookie默认情况下可以正常工作,但您必须在某处存储它们。如果您不想访问存储它们的正常位置,则需要设置另一个可以授予权限的目录,并将其设置为IIS6用户的Internet缓存。

答案 1 :(得分:0)

一些快速资源可能有所帮助,因为对于此类问题,您有相当多的潜在问题,请参阅this

IIS5 IIS6 之间的一个重要区别是 Windows 2003 SP1 中经历了重大的安全锁定更新。有很多东西适用于 Windows 2000 ,但不会在 2003 中(并且不应该 - 它们为各种各样的恶作剧打开了大门)。试图追踪 IIS6 锁定内容的所有地方可能具有挑战性,相反,我会使用上述资源来追踪人们遇到的常见问题 IIS6