【问题标题】:AWS Credentials from Nuget package in C#C# 中 Nuget 包中的 AWS 凭证
【发布时间】:2019-02-03 07:09:20
【问题描述】:

我正在构建一个 Nuget 包,它将能够将数据放入 AWS 上的 Kinesis Steam。

我不希望 Nuget 包本身包含任何凭据。我希望 nuget 包使用正在使用它的任何应用程序的 web.config 或 app.config 中的键。

我的问题是:

默认情况下会发生这种情况吗? 还是 AmazonKinesisClient 会尝试从 nuget 包本身的 app.config 中读取然后放弃?

在后一种情况下,nuget 包有什么方法可以从托管应用程序加载凭据,还是会强制托管应用程序将凭据显式传递给 nuget 包?

我非常希望不强制托管应用程序传递凭据。

nuget 包的目标是 .NET Framework V4.5

【问题讨论】:

  • 您可以创建 Config 类并添加不同的填充方法。例如 ReadFromFile(string filePath).

标签: c# .net amazon-web-services nuget amazon-kinesis


【解决方案1】:

即使您在 Nuget 包中使用 AWS 开发工具包,它仍会从正在运行的应用程序的 app.config 获取连接信息。

我已经对此进行了测试并通过在 .net 4.5 中构建控制台应用程序来确认这一点,并将配置文件信息添加到应用程序配置中。然后创建一个单独的库并使用 nuget 打包它。该库不提供凭据。我将 Nuget 包添加到我的控制台应用程序并成功连接到 app.config 中指定的帐户配置文件。

如果应用程序正在使用 AWS dotnet 开发工具包创建 Kinesis 客户端,并且您的程序包没有专门将凭据传递给客户端,则开发工具包会按下面列出的顺序查找凭据。

我也会为开发人员提供向您的班级提供凭据的选项,以便他们可以手动设置凭据。除了 SDK 使用的配置文件系统之外,开发人员可能还有另一种管理凭据的机制。

SDK 将:

  • 在 App.config 中查找 AWSAccessKey 和 AWSSecretKey
  • 搜索 SDK
  • 商店搜索凭据文件
  • 搜索实例配置文件

更多信息可以在这里找到:https://aws.amazon.com/blogs/developer/referencing-credentials-using-profiles/

【讨论】:

  • 对,但这不是我要问的。我的问题是 AWS sdk 是否会查看 nuget 包或托管应用程序中的 app.config。我还没有找到这方面的文档
  • 我已经编辑了答案以更清楚地回答原始问题。简而言之。将使用正在使用 nuget 库的 app.config 的正在运行的应用程序。
猜你喜欢
  • 1970-01-01
  • 2021-09-05
  • 1970-01-01
  • 1970-01-01
  • 2018-04-08
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
  • 2014-03-30
相关资源
最近更新 更多