0

ユーザーが SSL 接続を介して Active Directory のパスワードを変更できるようにする ASP アプリケーションを作成しています。

私は最終的にこれをすべて機能させましたが、それを行うために使用している方法では、以下に示すようにドメイン管理者のパスワードが必要です。

Set objIADS = GetObject("WinNT:").OpenDSObject("WinNT://domain", "Administrator", sDomainPassword, ADS_SECURE_AUTHENTICATION)
Set objIADSUser = objIADS.GetObject("user", sUserID)
objIADSUser.ChangePassword sOldPassword, sNewPassword

これで問題なく動作しますが、ドメイン管理者のパスワードを OpenDSObject メソッドに渡す必要があります。

明らかに、テキスト変数に平文で保存したり、SQL Server テーブルに平文で保存したくないので、他にどのようなオプションがありますか?

4

2 に答える 2

1

Microsoft の CAPICOM をサーバーにインストールして、このような機密データの暗号化に使用できます。

暗号化する ASP コードの例:

Set objEncryptedData = Server.CreateObject("CAPICOM.EncryptedData") objEncryptedData.Algorithm.Name = 3 '3=3DES objEncryptedData.Algorithm.KeyLength = 5 '5=256bit objEncryptedData.SetSecret "your-encryption-password" objEncryptedData.Content = "あなたの秘密のデータ」

sEncryptedStream = "" & objEncryptedData.Encrypt(0) '0=CAPICOM_ENCODE_BASE64 Set objEncryptedData = Nothing

復号化する ASP コードの例:

Set objEncryptedData = Server.CreateObject("CAPICOM.EncryptedData") objEncryptedData.SetSecret "your-encryption-password"

objEncryptedData.Decrypt(sEncryptedStream) sDecryptedData = objEncryptedData.Content

objEncryptedData = Nothing を設定します

于 2013-10-30T17:16:24.723 に答える
1

以前のコメントの後、期限切れのアカウントでのパスワードの変更に関する問題に気付きました。だから、新しい試み

通常のツールを使用して、.wsc (Windows スクリプティング コンポーネント) ファイルでパスワードの変更を行うコードをラップして登録し、適切な資格情報 (この場合は管理者) で実行されている com+ アプリケーションに追加し、コンポーネントをインスタンス化します。パスワードの変更を行うためのaspコード。

そうすれば、コンポーネントは必要な資格情報の下で実行され、パスワードは com+ 構成内に保存されます。

于 2013-10-21T11:21:24.653 に答える