0

asp.net を使用して Active Directory 内のユーザーの「パスワードの最小有効期間」を取得するにはどうすればよいですか?
ディレクトリ サービスを使用するか、AspNetActiveDirectoryMembershipProvider

例えば:

from below line, I can get lastname of user. 
string lastName = objDirectoryEntry.Properties["sn"].Value;

以下はユーザー属性のリストです。必要な属性「最小パスワード年齢」で見つかりませんでした
http://www.kouti.com/tables/userattributes.htm

注:Asp.net の使用を検討しています。

編集の概要-----------------------ディレクトリ サービスまたは(既定のメンバーシップ プロバイダー)
を使用してユーザー パスワードを変更しようとすると、次のエラーが表示されます。 AspNetActiveDirectoryMembershipProvider


パスワードがパスワード ポリシーの要件を満たしていません。パスワードの最小長、パスワードの複雑さ、パスワード履歴の要件を確認する


ユーザーが正常に作成および更新されました (名、姓などの更新フィールド)。ディレクトリ サービスと AspNetActiveDirectoryMembershipProvider の両方を使用してユーザーを作成および更新していますが、パスワードを変更しようとすると問題が発生します

例: パスワード anc1236 でユーザーを作成しました! 正常に作成され
、パスワードを xyyz4562@ に更新し、エラーが発生しました

以下は、パスワードを変更するために使用しているコードです。
objMembershipUser.ChangePassword(oldPassword, newPassword)
ディレクトリサービスを直接使用してみても同じエラーが発生します

4

1 に答える 1

2

あなたは間違ったオブジェクトを見ていると思います。

Active Directory でユーザー アカウントを操作する場合、ドメイン全体のアカウント ポリシーを参照する必要があるのが一般的です。たとえば、パスワードの最小有効期間と最大有効期間、最小パスワード長などのポリシー、およびロックアウト ポリシーは、ドメイン レベルで決定され、ドメイン内の各ユーザー オブジェクトに適用されます。すべての値は、maxPwdAge、minPwdLength、lockoutThreshold などの一連の属性として、ドメイン ルート オブジェクト (RootDSE ではなく、RootDSE の defaultNamingContext 属性が指すオブジェクト) に直接格納されます。さらに、パスワードの複雑さの規則は、pwdProperties 属性の列挙値にエンコードされます。これらの値はほとんどのドメインで非常に静的になる傾向があるため、通常、これらの値はプログラムの実行ごとに 1 回だけ読み取る必要があります。ポリシー値を使いやすくするために、リスト 10.7 に、すべての値を便利な .NET データ型 (TimeSpan など) に変換するドメイン アカウント ポリシーのラッパー クラスを示します。パスワード ポリシーの種類の特別な .NET 列挙型も含まれています。すべてのクラス プロパティをブックに含めることはできません。スペースが必要になるためです。ただし、ブックの Web サイトで完全なクラスを利用できるようにします。今後の説明では、アカウントのロックアウト ステータスを確認する方法や、パスワードの有効期限が切れているアカウントを見つける方法を説明する際に、このサンプルを参照します。これらのポリシー属性の LargeInteger 値は負の値として格納されることにも注意してください。このように考える方が簡単なので、正の値に戻すことにしました。これらの属性を使用することを選択した開発者は、この点に留意する必要があります。考慮しないと、後で計算が失敗するからです。

例については、このページを参照してください

于 2012-05-01T20:26:25.703 に答える