如何使用共享服务器保持会话活动? ASP.NET / MVC

时间:2012-02-18 18:57:59

标签: asp.net asp.net-mvc session

目前,我的Web应用程序托管在共享服务器(asphostcentral)中,具有以下配置(web.config):

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" cookieless="UseCookies">

一段时间后,会话过期,用户被重定向到登录页面并被迫再次输入他们的凭证。

我从支持中得到的答案是:

  

由于这是共享服务器,因此建议您不要使用会话状态。   相反,请使用cookie。编程cookie的方式非常非常   类似于会话,除了实现方式不同。

     

在共享服务器上,服务器上还有其他站点可能   影响您的网站会话。

有人可以协助吗?你是如何实施支持团队提供的解决方案的?

2 个答案:

答案 0 :(得分:2)

  

建议您不要使用会话状态

解决方案中的 Ctrl + F ,并从代码中删除Session的所有痕迹。如果您需要为用户存储一些信息并且此信息是敏感的,您可以将其存储到数据库中并稍后查询或使用身份验证cookie的userData部分。这将取决于您目前如何使用会话。

答案 1 :(得分:0)

使用cookie代替会话是危险的建议。请不要字面意思。 Cookie可以由客户读取和伪造,并且具有大小限制。

你可以:

  1. 在共享服务器上使用ASP.NET会话状态服务器。这样您的网络机器就可以共享会话。
  2. 使用粘性会话
  3. 删除会话的所有用法。您可以将数据存储在数据库中或cookie中(我不推荐!)
  4. 我按顺序推荐这三种解决方案。