1

環境:

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 に管理者権限を与えることはオプションではありません)

4

2 に答える 2

0

Cookie はデフォルトで機能しますが、保存する場所が必要です。それらが保存されている通常の場所へのアクセスを許可したくない場合は、権限を付与できる別のディレクトリを設定し、IIS6 ユーザーのインターネット キャッシュとして設定する必要があります。

于 2008-11-26T14:03:01.100 に答える
0

このタイプの問題にはかなり多くの潜在的な問題があることを考えると、役に立つかもしれない簡単なリソースがいくつかあります。これを参照してください。

IIS5IIS6の重要な違いの 1 つは、Windows 2003がSP1更新で大幅なセキュリティ ロックダウンを受けたことです。Windows 2000で機能していた機能が、 2003では機能しなかった(そして、機能してはならない - さまざまな悪ふざけへの扉を開いた)非常に多くの機能があります。IIS6がロックされた場所をすべて追跡するのは難しいかもしれませんが、代わりに上記のリソースを使用して、人々がIIS6で遭遇する一般的な問題を追跡します。

于 2011-08-26T03:45:32.323 に答える