0

我遇到以下问题。我有一个 ASP.NET (VB.NET) 应用程序正在尝试使用 AWS .NET SDK 连接到 Amazon Web 服务,为了做到这一点,用户正在输入他们的访问和密钥。然后我将密钥添加到配置中,如下所示:

 Dim config As Configuration = WebConfigurationManager.OpenWebConfiguration("~")
 Dim settings As KeyValueConfigurationCollection = config.AppSettings.Settings
 settings("AWSAccessKey").Value = AmazonAccessKeyText.Text
 settings("AWSSecretKey").Value = AmazonSecretKeyText.Text
 config.Save(ConfigurationSaveMode.Modified)
 ConfigurationManager.RefreshSection("appSettings")

虽然这成功地修改了 web.config 文件,但它仍然在运行时引发异常,说它找不到访问密钥。谁能告诉我我做错了什么?

4

2 回答 2

1

如果我理解正确,您拥有代表客户端连接到 AWS 的 ASP.NET 应用程序,如果是这样,从安全角度来看,在本地存储客户端凭证可能是最好的主意。

你可以

  1. 仅在需要时将凭据存储在会话中的内存中,例如 SecureString
  2. 使用任何 crypt api 将它们加密存储在磁盘上。

The amazon sdk doesn't need the credentials stored in the app/web.config. If you look at something like AWSClientFactory.CreateAmazonS3Client , you will notice that you can pass them as parameters to this function

于 2012-10-23T19:43:08.180 回答
0

可能,最好将您收到的密钥保留在 Application 对象中?例如静态。更清晰,更简单,修改web.config时不会导致应用程序的循环

于 2012-10-23T19:38:44.183 回答