1
52
非Windows平台上的更新
自从第一次写下这个答案以来,发生了很多变化。现代版本的PowerShell基于.net核心,跨平台运行。启用整个答案的基础类型称为
因此,虽然您可以在非Windows平台上使用相同的代码,但请注意,绝对没有加密支持。 tl;dr:不要在非Windows平台上使用! More information available in this excellent answer on a related question . 要轻松存储和检索加密凭据,请使用PowerShell的内置XML序列化(Clixml):
要重新导入:
需要记住的重要一点是,默认情况下,这使用Windows数据保护API,用于加密密码的密钥特定于 代码正在运行。 因此,加密凭证不能由不同用户导入,也不能由不同计算机上的同一用户导入。 通过在不同的运行用户和不同的计算机上加密同一凭证的多个版本,您可以让多个用户使用相同的密钥。 通过将用户和计算机名放在文件名中,您可以以允许相同代码使用的方式存储所有加密的秘密,而无需硬编码: 加密机
将自动加载正在运行的用户的文件的正确版本(或者由于文件不存在而失败)。 |
2
3
建立在Briantist&Graham:这将要求一个凭证,并在第一次运行时存储它,然后在同一代码的后续运行中重用它。在我的例子中,驱动器H是用户的主目录,用于整洁,而不是安全。
这段代码可以放入任何需要它的脚本中,从那时起,问题或多或少得到了解决。 如果应用程序允许,也可以在写入证书之前检查是否成功。请注意,如果密码更改,用户必须删除文件。[编辑:代码中缺少括号] |
Dhiraj · 使用PHP连接、授权和获取web应用程序的数据 7 年前 |
user3837019 · 尝试创建Java程序以下载csv文件 9 年前 |
joachim · 使用Windows凭据以编程方式登录TFS 9 年前 |
Vegi · BizTalk 2010-使用凭据的外部源 11 年前 |
user2769795 · Apache HttpAsyncClient 11 年前 |
Greg Oks · CRM 2011使用C连接到组织.svc# 12 年前 |