我通过 DirectoryEntry 类通过 LDAP 查询域控制器,我需要在运行应用程序的机器上存储此查询的用户名和密码。将这些存储在字符串中是不可行的,因为这是一个很大的安全风险。
我决定使用 DPAPI,但是我对 C# 中数据的加密/解密有点陌生。解密时,这些数据必须临时存储在字符串变量中,然后用作 DirectoryEntry 构造函数的参数,至少根据我的理解。如果我错了,请纠正我。
这个用户名和密码一旦被解密以用于进行 LDAP 查询的方法,是否容易受到攻击?特别是创建一个新的 DirectoryEntry 对象。
我可以尝试通过让应用程序在每次进行查询时要求用户输入用户名和密码来规避这种情况,但是它们仍然必须存储在字符串中以与 DirectoryEntry 构造函数一起使用。
如何结合 DirectoryEntry 构造函数重新使用用户名和密码,而不会使这些数据容易受到攻击并且在内存中可见?