2017-09-01 203 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一起工作,但我想這是我的最後一個選擇。 –