ログインしているユーザーを識別するためにローカルイントラネットWindows認証と連携するASP.NET Core 3.0アプリケーションがあります。標準のWindows認証動作を使用して、ユーザーのWindowsIdentity
を問題なくキャプチャできます。
ただし、ユーザーが自動イントラネットブラウザーログイン(つまり、パスワードダイアログなし)を使用してブラウザーにログインする方法、またはブラウザーのパスワードダイアログボックスを使用して明示的にログインする方法に応じて、ユーザーのグループ。
以下は、フィルタリングされたグループメンバーシップリスト(組み込みアカウントを除く)を含むユーザー情報をエコーバックするAPIリクエストです。左側は手動ログイン、右側は自動ログインです。
明示的なログインでは、ユーザーが所属するすべてのカスタムグループが正しく表示されます。ただし、自動ログインの場合、これらの同じグループは表示されません。
また、サーバーのUserインスタンスとIdentityインスタンスを詳しく調べたところ、ユーザーのまったく同じSIDを参照しているため、グループメンバーシップに対して異なる結果が返されるのは奇妙に思われます。
同じアカウントが返されたときにグループリストが異なる理由はありますか?グループはローカルであるため、ドメインアクセスによる問題ではないことに注意してください。
注:ローカルホストでもローカルでテストしています。これをテストするために、ここでWindowsプロキシ設定を設定します。
チェックボックスをオフにすると、ログインする必要があります。それらをオンにして(とにかくChromiumブラウザーで)、ブラウザーのログインダイアログに資格情報を明示的に入力する必要があります。
ユーザーは、それらのグループに追加されてからコンピューターからログアウトしましたか?
リストされたグループは、ユーザーのログイントークンに保持されます。自動ログインではユーザーの既存のログイントークン(ユーザーがWindowsにログインしたときに作成されたもの)を送信するため、最後にログインしてから追加されたグループが含まれないことが考えられます。
ユーザー名とパスワードを手動で入力すると、新しいログインが実行され、ログイン時にすべてのグループの新しいトークンが取得されます。新しいグループがそこに現れるでしょう。