来自 C# 中 Nuget 包的 AWS 凭证
AWS Credentials from Nuget package in C#
我正在构建一个 Nuget 包,它将能够将数据放入 AWS 上的 Kinesis Steam。
我不希望 Nuget 包本身包含任何凭据。我希望 nuget 包使用任何正在使用它的应用程序的 web.config 或 app.config 中的键。
我的问题是:
这会默认发生吗?
或者 AmazonKinesisClient 会尝试从 nuget 包本身的 app.config 中读取然后放弃吗?
在后一种情况下,nuget 包是否可以通过任何方式从托管应用程序加载凭据,或者是否会强制托管应用程序将凭据显式传递给 nuget 包?
我非常希望不要强制托管应用程序传递凭据。
nuget 包的目标是 .NET Framework V4.5
即使您在 Nuget 包中使用 AWS SDK,它仍然会从 运行 应用程序的 app.config 获取连接信息。
我已经对此进行了测试,并通过在 .net 4.5 中构建控制台应用程序并将配置文件信息添加到应用程序配置来确认这一点。然后创建一个单独的库并使用 nuget 打包它。该库不提供凭据。我将 Nuget 包添加到我的控制台应用程序,它成功连接到 app.config.
中指定的帐户配置文件
如果应用程序正在使用 AWS dotnet SDK 创建 Kinesis 客户端并且您的程序包没有专门将凭据传递给客户端,则 SDK 会按下面列出的顺序查找凭据。
我会为开发人员提供向您的 class 提供凭据的选项,以便他们可以手动设置凭据。开发人员可能有另一种机制来管理凭据,而不是 SDK 使用的配置文件系统。
SDK 将:
- 在 App.config
中查找 AWSAccessKey 和 AWSSecretKey
- 搜索SDK
- 存储搜索凭据文件
- 搜索实例配置文件
可在此处找到更多信息:https://aws.amazon.com/blogs/developer/referencing-credentials-using-profiles/
我正在构建一个 Nuget 包,它将能够将数据放入 AWS 上的 Kinesis Steam。
我不希望 Nuget 包本身包含任何凭据。我希望 nuget 包使用任何正在使用它的应用程序的 web.config 或 app.config 中的键。
我的问题是:
这会默认发生吗? 或者 AmazonKinesisClient 会尝试从 nuget 包本身的 app.config 中读取然后放弃吗?
在后一种情况下,nuget 包是否可以通过任何方式从托管应用程序加载凭据,或者是否会强制托管应用程序将凭据显式传递给 nuget 包?
我非常希望不要强制托管应用程序传递凭据。
nuget 包的目标是 .NET Framework V4.5
即使您在 Nuget 包中使用 AWS SDK,它仍然会从 运行 应用程序的 app.config 获取连接信息。
我已经对此进行了测试,并通过在 .net 4.5 中构建控制台应用程序并将配置文件信息添加到应用程序配置来确认这一点。然后创建一个单独的库并使用 nuget 打包它。该库不提供凭据。我将 Nuget 包添加到我的控制台应用程序,它成功连接到 app.config.
中指定的帐户配置文件如果应用程序正在使用 AWS dotnet SDK 创建 Kinesis 客户端并且您的程序包没有专门将凭据传递给客户端,则 SDK 会按下面列出的顺序查找凭据。
我会为开发人员提供向您的 class 提供凭据的选项,以便他们可以手动设置凭据。开发人员可能有另一种机制来管理凭据,而不是 SDK 使用的配置文件系统。
SDK 将:
- 在 App.config 中查找 AWSAccessKey 和 AWSSecretKey
- 搜索SDK
- 存储搜索凭据文件
- 搜索实例配置文件
可在此处找到更多信息:https://aws.amazon.com/blogs/developer/referencing-credentials-using-profiles/