Вы можете создать свой собственный PrincipalContext
, а затем использовать UserPrincipal.FindByIdentity
, чтобы получить основную сумму. Отсюда, как я подозреваю, вы уже знаете, вы можете вызвать свойство LastPasswordSet
.
public static DateTime? GetLastPasswordSet(string domain, string userName)
{
using (var context = new PrincipalContext(ContextType.Domain, domain))
{
var userPrincipal = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, userName);
return userPrincipal.LastPasswordSet;
}
}
Примечание: вам нужно будет добавить ссылку на System.DirectoryServices.AccountManagement
[ РЕДАКТИРОВАТЬ : в ответ на следующий вопрос в комментарии]
Чтобы проверить, был ли пароль последний раз установлен более месяца назад - примерно так:
if (lastPasswordSet < DateTime.Now.AddMonths(-1))
{
// Password last set over a month ago.
}
Следует иметь в виду, что месяц - это неоднозначный отрезок времени - его продолжительность зависит от того, в каком месяце (и году) вы находитесь. В зависимости от того, что вы пытаетесь сделать, может быть более подходящим иметь фиксированный период, например, 28 дней.