我正在创建一个ASP应用程序,允许用户通过SSL连接更改他们的活动目录密码。
我最终完成了所有这些工作,但是我使用的方法需要域管理密码,如下所示。
Set objIADS = GetObject("WinNT:").OpenDSObject("WinNT://domain", "Administrator", sDomainPassword, ADS_SECURE_AUTHENTICATION)
Set objIADSUser = objIADS.GetObject("user", sUserID)
objIADSUser.ChangePassword sOldPassword, sNewPassword现在,这一切都很好,但是我需要将域管理密码传递给OpenDSObject方法。
显然,我不想将其存储在文本变量中的clear中,也不希望存储在Server表中的clear中,那么我还有哪些其他选项呢?
发布于 2013-10-21 11:21:24
在之前的评论之后,我意识到了在过期帐户中更改密码的问题。所以,新的尝试
使用通常的工具,您可以将代码包装在.wsc (windows脚本组件)文件中进行密码更改,注册它,添加到在apropiated凭据下运行的com+应用程序(在您的示例中是管理员),并从asp代码实例化该组件以进行密码更改。
这样,组件将在所需的凭据下运行,密码将存储在com+配置中。
发布于 2013-10-30 17:16:24
您可以在服务器上安装微软CAPICOM,并将其用于对这样的敏感数据进行加密。
示例要加密的ASP代码:
设置objEncryptedData = Server.CreateObject("CAPICOM.EncryptedData") objEncryptedData.Algorithm.Name =3 '3=3DES objEncryptedData.Algorithm.KeyLength =5 '5=256bit objEncryptedData.SetSecret“your encryption-password”objEncryptedData.Content =“your保密-data”
sEncryptedStream = "“& objEncryptedData.Encrypt(0) '0=CAPICOM_ENCODE_BASE64 Set objEncryptedData = Nothing
示例ASP代码要解密:
设置objEncryptedData = Server.CreateObject("CAPICOM.EncryptedData") objEncryptedData.SetSecret“您的加密-密码”
objEncryptedData.Decrypt(sEncryptedStream) sDecryptedData = objEncryptedData.Content
设置objEncryptedData = Nothing
https://stackoverflow.com/questions/19435404
复制相似问题