使用aspnet_iisreg进行跨环境web.config加密

时间:2015-10-26 18:04:53

标签: asp.net security iis encryption asp.net-mvc-5

我正在开发一个asp.net mvc-5 Web应用程序。我使用第三方应用程序生成的安全令牌从我的服务器端调用第三方API。 现在我以安全的方式传递令牌,如下所示: -

  • 我将令牌添加到http标头。
  • 我们正在使用https与第三方系统进行通信。

所以我认为令牌在传输过程中不会被黑客入侵。但我面临的问题是如何存储和阅读令牌本身。目前我将其存储在web.config部分: -

<appSettings>

.....    
.....
    <add key="SecureToken" value="12345" />
.....
.....
</appSettings>

我正在检索我的应用程序中的值,如下所示: -

string Token = System.Web.Configuration.WebConfigurationManager.AppSettings["SecureToken"]

所以我面临的安全问题是,如果有人访问实时服务器,他可以读取web.config文件并获取安全令牌。所以我读到我可以使用aspnet_iisreg命令加密部分web.config部分。但现在我不知道如何强制这个在我的环境中工作?我的意思是我需要在一个环境中运行aspnet_iisreg,让我们说开发?或者我需要分别在三个环境中运行此命令?

1 个答案:

答案 0 :(得分:1)

它应该通过部署脚本运行,它可以是msi或PowerShell或其他东西。如果你手动部署,它需要aspnet_regiis -pe“yourappsettings”-app ...这也是一个手动工作并且容易出错。因此,开发包含所有页面,dll,.js,图像等的包,并安装该包(msi或powershell或其他)并将其安装到您的服务器。在该软件包中包含一个执行aspnet_regiis命令的脚本,该命令应在创建虚拟目录后运行,主要应该是最后一种操作。如果您使用的是powershell,那么它是一组指令 - 因此一条指令应该是aspnet_regiis命令。尝试使用VS Web部署包的后期构建事件。