如何将SQL成员数据库迁移到解密密钥自动生成的encryption密码?

我有一个服务器,其中machine.config指出以下内容:

<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="SHA1"/> 

解密密钥没有被指定,它是自动生成的。 我正在把这个移动到一个新的服务器。 如何迁移解密和validation密钥,以便可以在新服务器上使用数据库?

这取决于如何编写ASP.NET应用程序。 如果使用内置成员资格提供程序的可能性最大,那么您的运气不好,因为成员资格提供程序每次都使用计算机密钥对密码进行散列处理,假设这些密码被散列,或者只是encryption。

它也使用会话状态和视图状态编码的机器密钥。

如果应用程序有自己的成员资格提供程序,它甚至可能甚至不利用机器密钥,在这种情况下,您可能能够恢复它们。 无论哪种方式,它恐怕不好看。

您应该真的让开发人员将自定义机器密钥插入到应用程序的web.config文件中,如果您也计划迁移到Web场,则还必须执行此操作。

我不认为你可以,至less不能,除非你在代码中阅读你的应用程序中的机器键值 。

我很确定这些密钥只用于生成sessionids,并且应用程序不会将应用程序移动到使用相同数据库的新服务器上。 这是基于这样一个事实,即在应用程序池重新启动时重新生成machinekeys,并且应用程序池重新启动不会使以前存储的密码无效(或者我希望)。

有关此主题的更多详细信息,请参阅此博客文章: http : //blog.appharbor.com/2012/02/22/asp-net-forms-authentication-considered-broken