C #, аутентификация по активному каталогу

Я использую PrincipalContext (из пространства имен System.DirectoryServices.AccountManagement) для аутентификации в моем приложении в Active Directory (я использую функцию ValidateCredentials).

Аутентификация работает нормально, когда я сбрасываю пароль пользователя в Active Directory и заставляю его сменить пароль при следующем входе в систему, я не могу аутентифицировать пользователя.

Я попытался изменить способ аутентификации, я использовал LdapConnection (пространство имен System.DirectoryServices.Protocols), аутентификация прошла успешно, когда я сбрасываю пароль пользователя и заставляю пользователя сменить пароль при следующем входе в систему, я не могу аутентифицировать этого пользователя, если я только сбрасываю пароль и не заставляю пользователя менять пароль при следующем входе в систему, я могу аутентифицировать пользователя.

Я протестировал тот же сценарий с другим активным каталогом, и он работал во всех сценариях.

Возможно ли, что Active Directory не позволяет мне пройти аутентификацию с помощью кода, когда пользователь должен сменить пароль при следующем входе, флаг истинен?


person user3698547    schedule 02.06.2014    source источник


Ответы (1)


Вы действительно ответили на свой вопрос, когда в активном каталоге установлено «Пользователь должен сменить пароль при следующем входе в систему», пользователь может аутентифицироваться только в интерактивном режиме из пользовательского интерфейса Windows, чтобы установить новый пароль, они не могут быть аутентифицированы таким образом вам нужно.

Если вы хотите, чтобы это работало, вам нужно будет добавить в свое приложение функции для обнаружения, когда пользователь сильно меняет свой пароль, и предоставить средства для этого до аутентификации. Это потребует обработки паролей с истекшим сроком действия, а также случаев, когда изменение пароля было принудительным, как вы описываете.

person Ashigore    schedule 02.06.2014
comment
спасибо за ответ, поэтому мой вопрос в том, почему он работает в одном активном каталоге, муравей не работает в другом, что мне нужно настроить в моем AD, чтобы я мог аутентифицировать пользователя из кода, когда пользователь должен изменить пароль при следующем входе в систему установлено значение true? - person user3698547; 05.06.2014