2009-09-01 5 views
4

흥미로운 문제가 있습니다. 암호 관리 웹 페이지/서비스를 작성 중이며 사용자 암호가 언제 결정되는지 찾는 방법을 찾고 있습니다. 만료되어 수동으로 다른 암호를 재설정하고 전자 메일 등을 보낼 수 있습니다.ASP.NET C# Active Directory - 사용자의 암호가 만료되기 전의 시간을 확인하십시오.

문제는 사용자를 반복 할 때 pwdlastset을 사용하지 않는 경우가 많다는 것입니다. 속성 때문에 만료시기를 결정할 수 없습니다.

그래서 사용자의 암호가 pwdlastset 속성을 사용하고 남은 시간을 계산할 때 만료 될 때를 확인하는 좋은 방법을 찾고 있습니다.

감사합니다.

답변

8

그것은 암호가 유효 할 수있는 기간을 알고하기 위해

  • ... 실제로 당신이 처음에 생각보다 아주 조금 더 복잡, 당신은 "도메인 정책"을 읽고 알아낼 필요 그런 식으로 그런

: 사용자가 자신 "에서 userAccountControl"에서 설정 한 "UF_DONT_EXPIRE_PASSWD"플래그가

  • 경우, 자신의 암호를
  • 가 만료되지 않습니다
  • "pwdLastSet"값 ("ADSLargeInteger"또는 처음에 읽기가 다소 까다로운 Int64 값)이 0이면 다음에 로그온 할 때 사용자가 암호를 변경해야합니다.
  • "pwdLastSet"값이 -1 인 경우, 암호가 설정되지 않은 경우
  • 위의 경우가 하나도 해당되지 않는 경우에만 "pwdLastSet"값에 암호가 마지막으로 설정된 날짜가 포함되어 있으며 "MaxPasswordAge "을 도메인 정책에서 삭제하면 사용자의 암호가 만료되는 날짜가 표시됩니다.

Phew! 이게 까다로운 일이라고 생각 했니?

마크

:-)

추신 :

DevGuide http://ecx.images-amazon.com/images/I/512V652XBSL._SS500_.jpg

The .NET Developer's Guide to Directory Services Programming

이 책은 포함 : 당신은 .NET 기반의 AD 프로그래밍에 대한 심각한 경우에, 당신은이 책을한다고 사용자의 암호 만료 날짜 결정, 사용자 계정 잠금 상태 결정 및 훨씬 더 좋아하는 모든 기능 - 권장 사항! Joe와 Ryan은이 모든 정보를 모아서 설명하면서 자신을 좋아하는 평범한 조 프로그래머조차도 이해할 수 있도록 뛰어난 업무를 수행했습니다 :-)

+0

내 광고 쿼리를 실행하는 사용자에게는 속성을 볼 수있는 권한이없는 것 같습니다. 모든 사람의, 그래서 지금은 pwdlastset 특성을 볼 수있는 것 같아요, 이제는 기술적으로 사용할 수 없지만 useraccountcontrol에 표시되지 않은 계정으로 새로운 문제가 발생합니다. 볼 수있는 또 다른 설정이 있습니까? – Jimmy

+0

휴!당신은 모든 어려운 것들을 때렸습니까? 계정 잠금 결정 자체가 또 다른 오디세이입니다. 불행히도 UserAccountControl의 UF_LOCKOUT 플래그는 실제로 사용되지 않습니다 .--( –

+0

@JImmy : 내가 언급 한 책을 얻으십시오 - 모든 대답이 포함되어 있습니다. :-) 실제로 좋은 물건들 –

0

내가 아는 한 pwdlastset이 0이거나 누락 된 경우 사용자는 다음 로그온시 암호를 변경해야하며 그렇지 않으면 해당 계정은 만료되지 않는 암호로 설정됩니다. 이것이 당신이보고있는 것의 원인이 될 수 있습니까?