Mam aplikację ASP.NET Core 3.0, która współpracuje z lokalnym intranetowym uwierzytelnianiem systemu Windows w celu identyfikacji zalogowanych użytkowników. Korzystając ze standardowych zachowań uwierzytelniania systemu Windows, mogę WindowsIdentity
bez problemu uchwycić użytkownika .
Jednak w zależności od sposobu zalogowania użytkownika do przeglądarki przy użyciu automatycznego logowania do przeglądarki intranetowej (tj. Bez okna dialogowego hasła) lub jawnego zalogowania przy użyciu okna dialogowego hasła przeglądarki, otrzymuję różne wyniki dla grup użytkowników .
Poniżej znajduje się żądanie interfejsu API, które wyświetla echo informacji o użytkowniku, w tym filtrowaną listę członkostwa w grupach (z wyłączeniem kont wbudowanych). Ten po lewej to logowanie ręczne, ten po prawej to automatyczne logowanie.
W przypadku jawnego logowania poprawnie widzę wszystkie grupy niestandardowe, których użytkownik jest częścią. Jednak w przypadku automatycznego logowania te same grupy nie są wyświetlane:
Przyjrzałem się również instancjom użytkownika i tożsamości na serwerze i odnosi się on dokładnie do tych samych identyfikatorów SID użytkownika, więc wydaje się dziwne, że dla członkostwa grupy zwracane są różne wyniki.
Jakieś pomysły, dlaczego lista grup jest inna, gdy otrzymuję to samo konto? Pamiętaj, że grupy są lokalne, więc nie powinno to stanowić problemu z powodu dostępu do domeny.
Uwaga: testuję lokalnie nawet na localhost, i aby to przetestować, ustawiam tutaj ustawienia Proxy systemu Windows:
Po wyłączeniu pól wyboru jestem zmuszony się zalogować. Przy włączonych (w każdym razie w przeglądarkach Chromium) muszę jawnie wprowadzić swoje dane uwierzytelniające w oknie dialogowym logowania przeglądarki.
źródło