2017-09-01 170 views
-1

我已经在Mvc.net中创建WebApi,我使用Microsoft.OWIN进行验证和访问令牌生成并在AWS中托管我的API。AWS负载平衡器

现在,由于我正在使用负载平衡器分配流量,所以AWS会自动生成EC2实例的多个实例,这意味着多个服务器,因此无论何时何地调用Login Api,请求都会转到一个主服务器并生成Token和Claims Identity中,我们存储UserID该登录用户,但是当另一个API同时被随机调用到多个实例时,那么登录Claims Identity时存储的UserID不能从其他随机生成的服务器访问。

因此,我不知道Owin问题还是AWS负载均衡问题,AWS或OWIN中是否有功能,以便可以从多个服务器访问UserID?

我无法从我的API中删除OWIN。

+1

您需要以某种方式设置分布式会话(我不知道如何使用您正在使用的技术来做到这一点),或者在负载均衡器中启用会话粘性。 –

+0

是的,我在aws中添加了粘滞会话,但它不会对我有用 –

回答

0

您需要有一个中央会话存储区,像Redis或中央数据库。我已经看到两种方式都被不同的应用程序使用,我相信还有其他方法可以作为所有会话的中心点。

+0

我对Redis有疑问,它会和OWIN一起工作,但我想这是我的最后一个选择。 –