1

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

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

    }

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

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

2.支付网关也与本网站集成,当用户点击结帐时。他被重定向到支付网关,但是当他输入他的支付详细信息和交易完成后,当他返回响应页面时,他再次自动退出是否5分钟是否完成。当我在本地运行此网站时测试此条件时,这也可以正常工作。

感谢您的每一次帮助。非常感谢您!

如果您需要更多说明或源代码,请告诉我。

4

1 回答 1

2

好吧,您总是可以尝试根据从 PG 收到的 order-id 重新登录用户。由于来自 PG 的响应通常受校验和保护,因此您可以依靠它的真实性将用户带回您的页面。FormsAuthentication.SetAuthCookie只需使用重新登录用户的方法更新您的登录会话。

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

  1. 从 PG 响应中获取 OrderId。
  2. 从 Orders 表中获取关联的 userId(为此,您必须将每个用户与其订单相关联。
  3. 将 userId 保存在 Session 中。
  4. 将用户重定向到安全页面。

为什么我们不要求输入密码?因为,来自 PG 的响应通常受到哈希的保护,并且通常不会被篡改。因此,您可以放心地押注 PG 重定向的用户的真实性。

于 2014-05-06T10:32:02.537 回答