按下ctrl + f5后,会话变量在paypal后变空,并收到值

时间:2014-02-20 11:22:22

标签: asp.net session c#-4.0 paypal

我遇到了奇怪的情况,我的会话变量在从PayPal返回后将其设置为null。

在我重定向页面到PayPal之前的场景中,我将值分配给会话。

 public string sessionToken
        {
            get
            {
                if (Session["token"] != null)
                {
                    return Session["token"].ToString();
                }
                else
                    return string.Empty;
            }
            set
            {
                Session["token"] = value;
            }
        }

致电PayPal:

 bool ret = payPalCaller.ShortcutExpressCheckout(amt, ref token, ref retMsg, ref status);
 if (ret)
    {
          sessionToken = token;
          Response.Redirect(retMsg,false);
     }

用户完成paypal后(如果用户需要一些时间来完成txn)并返回到sucess页面,并且从那里我试图访问上面的会话变量,那么该值为空。但如果我按 ctrl + f5 几次,那么它就会获得价值。 这里有什么问题? 在我的开发电脑中,这工作正常,当我在服务器托管时出现问题。 (IIS 6)

我的网络配置配置如下:

<configuration>
  <location path="RegisterUser.aspx">
    <system.web>
      <authorization>
        <allow users="?" />
      </authorization>
      <httpRuntime executionTimeout="43200" maxRequestLength="104856" />
      <sessionState timeout="3600" mode="InProc" cookieless="false"></sessionState>
      <customErrors mode="ON" />
    </system.web>
  </location>
</configuration>

修改

我在Checkout and Payment with PayPal中使用了类似的代码。我发现评论部分提到了这个奇怪的问题,但也没有回答这个问题。

1 个答案:

答案 0 :(得分:1)

如果按 ctrl + F5 为您解决了问题,那么您的成功页面可能会被缓存。尝试在成功页面上禁用缓存,这可能就是这样做的。您可以参考此链接以供参考:Disabling browser caching for all browsers from ASP.NET