環境:
Delphi コードを呼び出す ASP ページを提供する IIS6 を実行している win2003。
Delphi コードは、ログインが必要なC# Web サービスlogin.asmx
に接続します( )。Web サービス ログは、ログインが成功したことを示しています。デバッグ結果は、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 に管理者権限を与えることはオプションではありません)