在ASP.NET中运行时修改配置

时间:2012-10-23 19:29:47

标签: c# asp.net vb.net amazon-web-services

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

 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文件,但它仍然在运行时抛出异常,说它无法找到Access密钥。谁能告诉我我做错了什么?

2 个答案:

答案 0 :(得分:1)

如果我理解正确,您的ASP.NET应用程序代表客户端连接到AWS,那么从安全的角度来看,在本地存储客户端凭据可能是最好的选择。

你可以

  1. 仅在需要类似SecureString
  2. 的情况下,才将凭证存储在会话的内存中
  3. 使用任何crypt apis将它们加密存储在磁盘上。
  4. amazon sdk不需要存储在app / web.config中的凭据。如果您查看 AWSClientFactory.CreateAmazonS3Client 之类的内容,您会发现可以将它们作为参数传递给此函数

答案 1 :(得分:0)

或许,最好将收到的密钥保存在Application对象中?例如静态。 它更清晰,更简单,并且在修改web.config时不会导致应用程序的回收

相关问题