会话注销问题

时间:2014-05-01 09:11:02

标签: asp.net session ccavenue

在asp.net上创建了Web应用程序。 当我在我的本地运行时,此应用程序工作正常。 我已经使用session来在会话中存储用户的userId。 在我希望只登录用户能够输入的每个页面中,我都编写了类似的代码。

   protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Session["userID"] == null)
            {
                Response.Redirect("login.aspx");
            }
        }

    }

因此,当会话没有userID时,用户会自动重定向到登录页面。

我面临两个问题 1.当我将它部署到BigRock共享服务器时。用户会在5分钟内自动注销。它是在该服务器中设置的定义会话超时,我无法更改。我不希望我的用户自动退出。

2.Payment Gateway也与该网站集成,当用户点击结账时。他被重定向到支付网关,但当他回到响应页面后输入他的付款细节和交易完成后,他再次自动获取注销是否完成了5分钟。当我在本地运行本网站时测试这个状态时,这也正常。

感谢每一位帮助。非常感谢您!

如果您需要更多说明或源代码,请与我们联系。

1 个答案:

答案 0 :(得分:1)

嗯,您始终可以根据从PG收到的订单ID尝试回退用户。由于PG的响应通常受校验和保护,因此您可以依靠它的真实性将用户带回您的页面。只需使用FormsAuthentication.SetAuthCookie方法重新登录用户即可更新登录会话。

在您的情况下,因为您直接将userdId分配给会话(恕我直言,但不是管理登录的最佳方式。尝试搜索MembershipProvider),步骤非常简单。

  1. 从PG回复中获取OrderId。
  2. 从Orders表中获取关联的userId(为此,您必须将每个用户与其订单相关联。
  3. 将userId保存在会话中。
  4. 将用户重定向到安全页面。
  5. 为什么我们不要求密码?因为,PG的响应通常通过散列来保护,并且通常不会被篡改。因此,您可以安全地押注PG重定向的用户的真实性。