我有一个Asp.Net MVC4网站,可以根据用户的登录凭据连接到多个数据库。为了获取用户的数据库访问列表,我必须在登录时执行一些复杂的连接。为避免不止一次这样做,我目前正在加密并将数据库ID存储在cookie中。我现在意识到这可能不是一个好主意,即使强加密也可能被打破。此外,加密的cookie会在每次增加流量的请求中传输。我现在正在考虑使用HttpContext.Current.Cache来存储数据。任何人都可以评论这是否是一个好主意。我也有兴趣知道那里是否有更好的选择。我的网站目前没有部署在服务器场上,但如果我将来使用缓存和服务器场会有什么影响呢?
答案 0 :(得分:1)
根据您的要求(即在会话中保留敏感的用户特定信息),正确的位置是SessionState。 AFAIK会话状态可以在多个Web服务器之间共享,因此如果您确实使用了服务器场,则无需进行任何更改。
答案 1 :(得分:0)
Session是用户敏感数据的正确容器。或者您可以将其存储在数据库中,并通过存储在会话中的某些标识符将其存储在那里(如果您存储大量数据,这将非常有用)。