使用Web场进行身份验证

时间:2011-02-24 12:07:03

标签: .net asp.net authentication web-farm

考虑到Web应用程序(.NET 3.5 +)的想法

  • 浏览器
  • 网络应用

使用表单进行身份验证将产生类似的代码行

FormsAuthentication.SetAuthCookie(strUsrNm, True)

在非负载均衡的服务器实例中这很好。身份验证如何在负载均衡的stuation(无粘性会话/无限)中工作,并且您无法在浏览器中存储客户端IP,用户密码或登录。

  • 浏览器
  • 负载均衡器
  • 网络应用程序(在服务器1上)|| Web应用程序(在服务器2上)

限制:没有数据库会话,没有AD服务器(例如:迎合外部用户)

简而言之 - 在负载均衡的情况下,如果用户在没有重新进行身份验证的情况下对其他服务器进行身份验证,那么应用程序如何知道用户是谁。

感谢

1 个答案:

答案 0 :(得分:17)

如果您使用cookie,则所有服务器都将了解经过身份验证的用户,因为身份验证票证存储在Cookie中。任何服务器都将收到此cookie,并且能够解密故障单并对用户进行身份验证。

Here您有关于表单身份验证如何工作的更多详细信息。

此外,您必须确保服务器场中的所有服务器共享用于加密和解密的计算机密钥。

  
    

如果在Web场中部署应用程序,则必须确保每台服务器上的配置文件共享相同的validationKey和decryptionKey值,这些值分别用于散列和解密。这是必需的,因为您无法保证哪个服务器将处理连续的请求。

         

使用手动生成的键值,设置应类似于以下示例。

         

<的machineKey
    的validationKey =“21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7                    AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B“
    decryptionKey = “ABAA84D7EC4BB56D75D217CECFFB9628809BDB8BF91CFCD64568A145BE59719F”     验证= “SHA1”     解密= “AES”     />

  

Here更多详情