2009-09-01 38 views
4

興味深い問題があります。パスワード管理Webページ/サービスを作成しています。ユーザーのパスワードがいつ更新されるかを判断する方法を見つけようとしています。有効期限が切れるので、他のパスワードを手作業でリセットしてメールなどを送信することができます。ASP.NET C#Active Directory - ユーザーのパスワードの有効期限が切れるまでの時間を表示

私が抱えている問題は、ユーザーをループさせようとしているときに、大部分がpwdlastset私はいつそれが期限切れになるのか判断できません。

私は、ユーザーのパスワードがpwdlastsetプロパティを使用して残り時間を計算することを除いて期限切れになるかどうかを確認する良い方法についてアイデアを探していると思います。

ありがとうございます。

答えて

8

それは実際にはパスワードが有効であることができますどのくらい知っているために、第1 ...

  • で思っているよりかなり多く複雑だ、あなたは「ドメインポリシー」を読み、見つける必要がありそのように続いて

  • ユーザーが自分のパスワードが
  • を期限切れにすることはありません、彼の "でuserAccountControl" に設定されている "UF_DONT_EXPIRE_PASSWD" フラグを持っている場合
  • "pwdLastSet"の値(最初に読みにくい "ADSLargeInteger"またはInt64値)が0の場合、次回のログオン時にパスワードを変更する必要があります。
  • "pwdLastSet"の値が-1であり、パスワードが一度も設定されていない場合
  • 上記のいずれにも当てはまらない場合にのみ、 "pwdLastSet"値にパスワードが最後に設定された日付が含まれ、 "MaxPasswordAge "をドメインポリシーから削除すると、ユーザーのパスワードの有効期限が切れる日付が表示されます。

Phew!あなたはそれがこのトリッキーだろうと思いましたか? :-)

マルク・

PS:あなたは、.NETベースのADプログラミングを真剣に考えているなら、あなたはこの本を持っているべき:

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

The .NET Developer's Guide to Directory Services Programming

本が含まれていますユーザーのパスワードの有効期限を判断したり、ユーザーアカウントのロックアウトの状態を判断したりするなど、すべての機能をお勧めします。 JoeとRyanは、このような情報をまとめて説明してくれています。自分のような平均的なJoeプログラマでも理解できるように:-)

+0

私のADクエリを実行しているユーザーには、プロパティを表示する権限がないようですだから今、私はpwdlastset属性を見ることができるようですが、今は技術的には無効になっていますが、useraccountcontrolには表示されていないアカウントでは新しい問題が発生します。 – Jimmy

+0

phew!あなたはすべてのハードなものを打った?アカウントのロックアウトを決定すること自体が別のオデッセイです...残念ながら、UserAccountControlのUF_LOCKOUTフラグは実際には使用されません:-( –

+0

@JImmy:私が言及した本を手に入れよう - それにはすべての答えが含まれます:-)確かに良いもの –

0

私の知る限り、pwdlastsetがゼロまたは不足している場合、ユーザーは次のログオン時にパスワードを変更する必要があります。または、期限切れでないパスワードでアカウントを設定します。これがあなたが見ているものの原因かもしれませんか?

関連する問題