로컬 인트라넷 Windows 인증과 함께 작동하여 로그인 한 사용자를 식별하는 ASP.NET Core 3.0 응용 프로그램이 있습니다. 표준 Windows 인증 동작을 사용하면 WindowsIdentity
문제없이 사용자를 캡처 할 수 있습니다.
그러나 사용자가 자동 인트라넷 브라우저 로그인 (예 : 비밀번호 대화 상자 없음)을 사용하거나 브라우저 비밀번호 대화 상자를 사용하여 명시 적으로 로그인하는 방식 에 따라 사용자 그룹에 대해 다른 결과가 나타납니다 .
다음은 필터링 된 그룹 멤버십 목록 (내장 계정 제외)을 포함하여 사용자 정보를 에코하는 API 요청입니다. 왼쪽에있는 것은 수동 로그인이고, 오른쪽에있는 자동 로그인입니다.
명시 적 로그인의 경우 사용자가 속한 모든 사용자 정의 그룹을 올바르게 볼 수 있습니다. 그러나 자동 로그인의 경우 동일한 그룹이 표시되지 않습니다.
또한 서버의 User 및 Identity 인스턴스를 자세히 살펴 보았으며 사용자에 대해 동일한 SID를 참조하고 있으므로 그룹 멤버십에 대해 다른 결과가 반환되는 것이 이상해 보입니다.
동일한 계정이 반환 될 때 그룹 목록이 다른 이유에 대한 아이디어가 있습니까? 그룹은 로컬이므로 도메인 액세스로 인해 문제가되지 않아야합니다.
참고 : localhost에서도 로컬로 테스트하고 있으며이를 테스트하려면 Windows 프록시 설정을 여기에서 설정하십시오.
확인란을 끄면 강제로 로그인해야합니다. 그들과 함께 (어쨌든 Chromium 브라우저에서) 브라우저의 로그인 대화 상자에 자격 증명을 명시 적으로 입력해야합니다.