繁体   English   中英

使相同的cookie在不同的Azure实例之间可读

[英]Make the same cookie readable between different Azure instances

在我的网站上,有一张注册表。 填写完之后,用户将重定向到Azure ACS以便登录。登录后,用户将重定向回到我的网站并进行注册和登录。

在将用户转移到ACS之前,将注册表单的信息保存在cookie中,以便在用户返回时进行读取。 Azure可能会突然为我的webrole更改服务器实例,并且在这种情况下似乎无法读取cookie。 由于用户已转移到ACS,看来我无法在会话中存储注册信息。 我想我需要使用Cookie。 有什么方法可以使同一Cookie在不同的Azure实例之间可读? 还是有更好的解决方案? 谢谢你的帮助。

与在多台服务器上的任何网站一样,您需要将会话数据存储在可用于所有实例的数据库或其他存储中。

这是一篇博客文章,详细介绍了Azure Web角色中可用的选项: http : //blogs.msdn.com/b/cie/archive/2013/05/17/session-state-management-in-windows-azure-网络roles.aspx

话虽这么说,但我不知道为什么Cookie在Azure实例之间不起作用。 您正在做什么设置/读取cookie?

首先, 您可以像其他任何Web应用程序一样在Windows Azure云服务中使用会话变量 您不能使用In-Proc会话状态管理 如@CoderDennis所述,您需要将会话状态存储在所有实例均可访问的位置。

我的建议是使用Windows Azure Role Based Cache并使用该会话状态提供程序进行会话状态管理。 您可能会发现此链接对执行此操作很有帮助: http : //www.windowsazure.com/en-us/manage/services/cache/net/how-to-in-role-cache/#store-session

来到基于cookie的解决方案,那也可以。 请记住,您的所有实例都位于负载平衡器的后面,在所有Azure实例之间读取cookie并不需要做任何特殊操作,因为所有实例将共享相同的域名。

对于共享存储,您可以将数据存储在azure表中,而不是数据库中。 根据您的要求,您可能不需要完整的数据库来执行此操作。 Azure表是可靠的,可以很好地扩展,并且使用和管理非常简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM