У меня есть приложение ASP.NET Core 3.0, которое работает с локальной аутентификацией Windows в интрасети для идентификации вошедших в систему пользователей. Используя стандартные способы аутентификации Windows, я могу захватить пользователя WindowsIdentity
без проблем.
Однако в зависимости от того, как пользователь вошел в браузер с помощью автоматического входа в браузер интрасети (т. Е. Без пароля) или явного входа с помощью диалогового окна «Пароль браузера», я получаю разные результаты для групп пользователей .
Ниже приведен запрос API, который возвращает информацию о пользователе, включая отфильтрованный список членства в группе (исключая встроенные учетные записи). Слева - вход в систему вручную, справа - автоматический вход.
Для явного входа в систему я правильно вижу все пользовательские группы, в которые входит пользователь. Однако для автоматического входа те же группы не отображаются:
Я также внимательно посмотрел на экземпляры User и Identity на сервере, и они ссылаются на идентичные идентификаторы SID для пользователя, поэтому кажется странным, что разные результаты возвращаются для членства в группе.
Любые идеи, почему список групп отличается, когда я возвращаю ту же учетную запись? Обратите внимание, что группы являются локальными, поэтому это не должно быть проблемой из-за доступа к домену.
Примечание: я тестирую локально даже на localhost, и чтобы проверить это, я установил здесь настройки Windows Proxy:
С выключенными флажками я вынужден войти. Когда они включены (в любом случае в браузерах Chromium), я должен явно вводить свои учетные данные в диалог входа в браузер.