2013-07-08 57 views
0

我创建了一个页面,向用户显示收据,说明他们已成功完成第三方网站的付款。我试图阻止用户返回到第三方的页面并进行重复付款。我想我可以在用户点击后退按钮时注销用户,这样他们就可以将他们踢出站点并登录到登录页面。强制注销付款收据页面

我试着使用:

protected void Page_Unload(object sender, EventArgs e) 
{ 
    Response.Redirect("Login.aspx"); 
} 

,但我得到的错误:“System.Web.HttpException:响应是不是在这方面提供”

该网站的流程是:登录上登录.aspx然后在下一页填写一个应用程序。申请完成后,提交按钮会将用户带到他们选择推迟付款或使用卡付款的页面。如果他们用卡付款,他们将被带到第三方网站并填写他们的信息。第三方网站然后将它们发回我创建的收据页面。

所以问题是:如何在按下后退按钮时将某人拒之门外?

+1

你不能真的阻止后退按钮。您应该有更好的方式来处理通过第三方重复付款的方式,即令牌。您可以使用Post Redirect Get模式和您的身份验证将它们重定向到登录。你甚至使用'FormsAuth'? –

+0

@Luke我不使用'FormsAuth' – Austin

+0

那么用户如何“登录”呢?在您的应用程序中需要更多支付流程/身份验证的上下文才能开始回答。 –

回答

1

我们通常不会在完成后看到购物车注销用户。如果你这样做,用户会生气。

此外,您无法控制后退按钮。相反,你可以创建一个这样的步骤 -

Cart Page -> Go to third party site -> Confirmation Page -> Complete Page.

如果用户完成签出在completed page并单击后退按钮,你仍然可以验证车在confirmation page

例如,从购物车页面一直保存SessionStatecompleted page。如果购物车已成功完成,请清除会话状态。如果用户浏览器Confirmation Page没有SessionState,则显示Your cart is empty

+0

你是否在确认页面的Page_load中做了这样的事情:'if(Session [ “ActivePayment”]。ToString()==“true”)Response.Redirect(“CompletedPage.aspx”);其他响应。重定向(“Login.aspx”);' – Austin

+1

是的,'Session [“ActivePayment”]'不应该在'确认页面'中为空,以提升到'Completed Page'。如果为空,则重定向到“Cart Page”。 ***此外,您可以检查用户是否在所有步骤进行了身份验证*** – Win

+0

它会检查是否在所有步骤都进行了身份验证,但问题是他们可以点击后退按钮,然后在第三方站点上重新提交。但你的答案应该抵消这个问题(希望) – Austin