学習目的で、私は独自の Active Directory クライアントを作成しています。アカウントのロック解除やパスワードのリセットなどのコマンドを実行するには、管理者アカウントとパスワードを入力しWindowsIdentity.Impersonate
、管理者アカウントとしてコードを使用して実行する必要があります。プログラム全体でパスワードを何度も使用する必要があるため、パスワードを保護するためのオプションについて疑問に思っています。
私が理解していることSecureString
から、パスワードを保存するために使用できます。しかし、管理者アカウントとしてコードを実行するには、 を使用しており、それを使用するには、 ではなく通常のトークンを必要とするWindowsIdentity.Impersonate
トークンを取得する必要があります。LogonUser
string
SecureString
だから私はしなければならないでしょう:
起動時にログイン
入力を
SecureString
入力をクリア
その後、昇格を必要とする関数を実行したい場合:
以前に作成
SecureString
したものをstring
変換された文字列を
LogonUser
変換文字列をクリアします
null
コマンド実行
LogonUser
オブジェクトをクリア
これはこれにアプローチする正しい方法ですか?SecureString
を使用するために変換する必要があるのは奇妙に思えstring
ます...目的を無効にし、変換中にパスワードをより脆弱なままにしてしまうようです。
編集: LogonUser の名前を修正