0

我們有傳統的ASP.NET應用程序,它使用Enterprise Library 4.1對稱密鑰提供程序,其中密鑰存儲在物理文件上,如下面的配置中所示。它使用機器重點保護。如何使用企業庫4.1 Azure中的對稱密鑰提供程序

<symmetricCryptoProviders> 
       <add algorithmType="System.Security.Cryptography.RijndaelManaged, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
       protectedKeyFilename="F:\wwwroot2\MSEntLib3.1\key\EncryptionKey.key" 
       protectedKeyProtectionScope="Machine" type="Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.SymmetricAlgorithmProvider, Microsoft.Practices.EnterpriseLibrary.Security.Cryptography, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
       name="RijndaelManaged" /> 
      </symmetricCryptoProviders> 

我部署到Azure和應用程序會引發錯誤「EncryptionKey.key」沒有找到。有人可以幫助我們如何繼續在Azure中使用企業庫加密嗎?

有沒有我們可以創建密鑰並在包括Azure Web Roles在內的任何Web服務器上使用的選項?

感謝

回答

1

對稱加密提供密鑰存儲在正在使用的應用程序配置文件中的完整的物理文件路徑和名稱引用,並通過DPAPI加密保護的文件,就像在你的配置中。由於DPAPI在Windows Azure中不可用,因此使用企業庫對稱加密提供程序即可使用。

但是,您可以考慮創建一個自定義對稱算法提供程序以用於企業庫加密塊。此提供程序可以使用.NET加密服務提供程序來實現加密,並且最佳做法是以加密格式存儲密鑰,脫機執行加密並將它們存儲在Windows Azure Blob存儲中。有關此方法的更多信息,請參閱Using Certificate-Based Encryption in Windows Azure Applicationsthis post關於保護Windows Azure中的連接字符串。

相關問題