我有一个基于ASP.Net的系统; 网站的相同副本在三台不同的服务器上运行,所有Windows 2008R2都运行IIS7.5。 每个站点都有自己的身份validation数据库,拥有自己的用户,angular色,configuration文件等。
我想将这些数据库合并在一起,这样三台服务器共享一个authentication数据库,然后用户可以login到三台服务器中的任何一台。
主要网站是迄今为止最大的用户群; 另外两个站点每个只有less数用户/configuration文件,因此如有必要,可以手动重新创build它们。 但是,我需要做什么来确保密码散列/ salt在每台服务器上都有效且可用?
是否只是在web.config中设置相同的MachineKey ? 我是否也需要在aspnet_Applications表中设置相同的ApplicationId ?
如果将较小的两个成员资格表合并到较大的表中,那么当您将Membership表迁移到较大的表中时,可以将新行的ApplicationID更改为具有与第一个相同的ApplicationID。 这样做后,您将有效地拥有3个应用程序共享的1个大(ger)应用程序用户。 既然你正在使用哈希,(我假设你的web.configvalidation= SHA1),你不应该担心机器密钥,因为它不用于validationlogin – 这就是盐的用途。 Machine Key用于encryptionSession,Form Data和ViewState等内容。 如果机器密钥对于每个应用程序保持不同,那么也可以。 (如果您在多个服务器上负载平衡单个应用程序,则需要它们保持一致。)
现在有一些注意事项。