考虑到Web应用程序的想法(.NET 3.5+)
浏览器
网络应用
使用表单进行身份验证将产生类似的代码行
FormsAuthentication.SetAuthCookie(strUsrNm, True)
这在非负载平衡的服务器实例中很好.身份验证如何在负载平衡的stuation(无粘性会话/无限制)中工作,并且您无法在浏览器中存储客户端IP,用户密码或登录.
浏览器
负载均衡器
Web应用程序(在服务器1上)|| Web应用程序(在服务器2上)
限制:没有数据库会话,没有AD服务器(例如:迎合外部用户)
简而言之 - 在负载均衡的情况下,如果用户在没有重新进行身份验证的情况下对其他服务器进行身份验证,那么应用程序如何知道用户是谁.
谢谢
如果您使用cookie,则所有服务器都将了解经过身份验证的用户,因为身份验证票证存储在cookie中.任何服务器都将收到此cookie,并且能够解密故障单并对用户进行身份验证.
在这里,您可以了解有关表单身份验证的工作原
此外,您必须确保服务器场中的所有服务器共享用于加密和解密的计算机密钥.
如果在Web场中部署应用程序,则必须确保每个服务器上的配置文件共享相同的validationKey和decryptionKey值,这些值分别用于散列和解密.这是必需的,因为您无法保证哪个服务器将处理连续的请求.
使用手动生成的键值,设置应类似于以下示例.
的
的validationKey = "21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7 AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B"
decryptionKey = "ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F"验证= "SHA1"解密= "AES"/>
这里有更多细节