Azure中的.NET表单身份验证-多个VM需要哪些更改?

Azure中的.NET表单身份验证-多个VM需要哪些更改?,.net,session,azure,forms-authentication,session-state,.net,Session,Azure,Forms Authentication,Session State,我们目前正在将.NET Web应用程序迁移到Azure云服务,Web层在多个节点(最初是两个)上运行。我想知道我们应该如何修改基于表单的身份验证机制以在负载平衡环境中运行?这是我们过去从未考虑过的问题,因为我们的应用程序始终仅限于一台物理服务器 目前,我们在web.config中定义了受保护的文件夹,如下所示: <location path="secure-area"> <system.web> <authorization>

我们目前正在将.NET Web应用程序迁移到Azure云服务,Web层在多个节点(最初是两个)上运行。我想知道我们应该如何修改基于表单的身份验证机制以在负载平衡环境中运行?这是我们过去从未考虑过的问题,因为我们的应用程序始终仅限于一台物理服务器

目前,我们在web.config中定义了受保护的文件夹,如下所示:

<location path="secure-area">
    <system.web>
      <authorization>
        <deny users="?"/>
      </authorization>
    </system.web>
  </location>
然后在整个应用程序中检索活动会话,如下所示:

if accountIsValid = true then
   FormsAuthentication.SetAuthCookie(sessionID, False)
   response.redirect("secure-area/index.aspx")
end if
Dim sessionID as string = User.Identity.Name.ToString
假设此方法不会在多个节点上自动保持会话状态?我想知道Azure Fabric Controller是否可以在不更改代码的情况下为我解决所有这些问题。也许是一厢情愿吧


任何在线指南的帮助或链接都将不胜感激

这不是关于Azure的问题,而是关于使用负载平衡ASP.NET应用程序进行表单身份验证的问题。表单身份验证使用服务器上的machineKey对发送到客户端的cookie进行加密。默认情况下,此密钥在每个实例的服务器上随机生成。要使forms auth跨多个节点工作,您需要在web.config中的两个实例中将计算机密钥设置为相同。以下是几个例子:


希望这一切都能实现,祝您编码愉快

谢谢!您提到的堆栈溢出线程似乎回答了我的问题,感谢您的帮助!