Окружающая среда:
win2003 под управлением IIS6, обслуживающий asp-страницы, вызывающие код delphi.
Код Delphi связывается с c # webservice , для которого требуется войти (login.asmx
). Логи веб-службы показывают, что вход в систему выполнен успешно. Результаты отладки показывают, что Context.User.Identity.IsAuthenticated returns true
.
После входа в систему код Delphi дважды проверяется, если он все еще аутентифицирован. Веб-сервис возвращает false -> Context.User.Identity.IsAuthenticated returns false
.
Наше предположение: файл cookie для проверки подлинности, полученный с помощью кода delphi, работающего под IIS6 учетные данные (сетевая служба?), Не сохраняется на диск, поэтому вход в систему потерян.
Filemon показывает 'C:\WINDOWS\Temp\Temporary Internet Files'
доступ запрещен. Предоставление IIS6 прав администратора для этой папки устраняет проблему, но не является приемлемым, поскольку файлы cookie должны работать по умолчанию.
Запуск IIS6 в IIS5 Режим совместимости устраняет проблему, но также не является предпочтительным
Требуемое решение: точная причина проблемы и наименьшее возможное изменение конфигурации (предоставление прав администратора для IUSR невозможно)