Web令牌和HttpSessionState ASP

时间:2017-02-17 09:05:49

标签: c# asp.net-mvc session caching json-web-token

美好的一天, 以下是一个很好的解决方案,还是有替代方案,或者这是不好的。

我有一个ASP MVC客户端应用程序,它与HTTP API(也是微软但无关紧要)进行对话。 在我的客户端应用程序中,我正在为用户忙于处理的数据(缓存)存储会话数据(HttpSessionState)。显然,会话数据是根据会话ID存储的,会话ID是实例(每个客户端浏览器的会话ID)。我要解决的第一个问题是我需要使用用户(应用程序用户)的唯一键来存储数据,这样如果在浏览器中有多个登录,我就不会覆盖或删除缓存。我可能会打开Internet Explorer以及应用程序的多个会话。这可能是同一个用户两个实例或两个会话的不同会话。

当我对用户进行身份验证时,我有一个ID / webtoken。可以使用此作为标识符并使​​用该键包含存储缓存,因此,如果用户注销缓存仅清除该“登录”。请记住,这是HttpSessionState,它存储在服务器而不是客户端浏览器上。

1 个答案:

答案 0 :(得分:0)

您将无法在一个会话中登录到两个不同的用户帐户,因为您在所有打开的标签页之间只共享一个身份验证Cookie。如果您打开另一个会话,无论用户是相同还是不同,您将拥有不同的会话ID,因此您将引用不同的会话数据。

另外请记住使用令牌来保护您的WebAPI,因为不建议使用cookie身份验证,这对于XSS攻击很有价值。