在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分钟。当我在本地运行本网站时测试这个状态时,这也正常。感谢每一位帮助。非常感谢您!
如果您需要更多说明或源代码,请与我们联系。
答案 0 :(得分:1)
嗯,您始终可以根据从PG收到的订单ID尝试回退用户。由于PG的响应通常受校验和保护,因此您可以依靠它的真实性将用户带回您的页面。只需使用FormsAuthentication.SetAuthCookie
方法重新登录用户即可更新登录会话。
在您的情况下,因为您直接将userdId分配给会话(恕我直言,但不是管理登录的最佳方式。尝试搜索MembershipProvider
),步骤非常简单。
为什么我们不要求密码?因为,PG的响应通常通过散列来保护,并且通常不会被篡改。因此,您可以安全地押注PG重定向的用户的真实性。