1

ユーザーパスワードをリセットする必要があります。そのために、次のコードを使用します。

DirectoryEntry de = ..
de.AuthenticationType = AuthenticationType.Secure
de.Password = txtPassword.text
de.CommitChanges()

コードを実行すると、何も起こりません。ユーザーパスワードは変更されず、例外はスローされません。

次の方法を使用する場合:

de.Invoke("SetPassword", .. );

コードを実行すると、次のようなメッセージが表示されます。スマートカードを挿入してください...

ユーザーアカウントに対して管理者権限があります。ユーザーはスマートカードにUAVを設定していません。

何か案は ?

4

1 に答える 1

3

DirectoryEntryクラスのPasswordプロパティは、あなたが思っているものではありません。ユーザーのパスワードを変更するのではなく、DirectoryEntryオブジェクトから詳細情報にアクセスするために使用するパスワードを変更します。

MSDNドキュメントから:

UsernameプロパティとPasswordプロパティを設定して、ActiveDirectoryドメインサービスの情報にアクセスするための代替資格情報を指定できます。このインスタンスから(たとえば、Childrenを介して)取得された他のDirectoryEntryオブジェクトは、同じ代替クレデンシャルで自動的に作成されます。

2番目の方法では、スマートカードの挿入を求められた場合、変更しているユーザーとは関係がないと思います。スマートカードを求めている可能性が高くなります。スマートカードを使用するように設定されていない場合は、なぜスマートカードを要求するのかまったくわかりません。

この関連する質問を見て、そこでの回答が役立つかどうかを確認してください。

于 2012-08-01T12:58:26.350 に答える