2

このコードは、Global.asax Application_AuthenticateRequest(...)メソッドのContext.User.Identity値をチェックして、ログインしているユーザーに関する情報を取得することに依存しています。これはクラシックモードでは正常に機能しますが、IISを反転して統合パイプライン "Context.User"を使用すると、nullとして返されますが、断続的にしか返されません。なぜ何かアイデアはありますか?

<authentication mode = "Windows">があり、仮想ディレクトリでWindows認証のみが有効になっています。

4

1 に答える 1

5

統合モードとは、ASP.NETのパイプラインイベントがIISパイプラインと同時に実行されることを意味します。つまり、次のようになります。1)クラシックモード-ASP.NETのAuthenticateRequestは、IISが既に認証を行った後に実行されます(Windows認証を使用)。多分または基本的ななど)、ユーザーIDが設定されます。2)IntegratedModeの場合-AuthenticateRequestは両方で「同時に」実行されるため、そこでnullが発生します。ユーザーIDを確実に取得したい場合は、PostAuthenticateRequestの使用を検討する必要があります(もちろん、認証モジュールが有効になっている場合)。

于 2010-05-19T21:15:55.123 に答える