2016-09-21 39 views
1

我正在开发一个网站,其中用户必须购买订阅,我想要做的是,当用户登录到我的网站购买订阅我保存他/她的电子邮件ID在cookie中,然后他/她被重定向到PayPal,付款后他回到我的网站的成功页面,在那里我检索他的电子邮件ID的cookie更新数据库,但第一次我得到空值,如果我再次重复相同的过程我可以读取我存储的cookie中的值。在我的本地主机上,这个问题还没有到来,但是当我发布网站时,这个问题就出现了。帮我出 的代码我使用存储cookie首次显示空值,再次来到该页面后,我可以看到cookie值。 Asp.net c#

Response.Cookies["useremail"].Value = Session["user_id"].ToString(); 
Response.Cookies["useremail"].Expires = DateTime.Now.AddDays(1); 

的代码我使用检索该cookie

if (Request.Cookies["useremail"] != null) 
     Label1.Text= Server.HtmlEncode(Request.Cookies["useremail"].Value); 

在浏览器我已经看到该cookie保存在cookie中。

+0

如果你已经存储的值在Session然后在if语句你为什么不检查'如果(string.IsNullOrEmpty(会话[ “user_ID的”]。的ToString()))'代替.. ? – MethodMan

+0

如果任何人需要进一步的信息,我可以提供,我跟着这个链接使用cookie https://msdn.microsoft.com/en-us/library/ms178194.aspx –

+0

@MethodMan我也试过会议,当用户在paypal付款后来到成功页面,我的网站会话结束了,即使我没有对会话时间进行任何限制,这就是为什么我放松会话对象中的信息。 –

回答

0

简而言之,这是我期望在您的代码中看到的内容,但我不这样做,您可以尝试此操作并将其替换为适当的变量等以使您的代码正常工作。 我在我的测试服务器上测试了它,它可以工作,因此您可以遵循相同的模式。

string myCookieName = "abcd"; 
HttpCookie aCookie = new HttpCookie(myCookieName); 
aCookie.Value = DateTime.Now.ToString(); 
aCookie.Expires = DateTime.Now.AddDays(1); 
Response.Cookies.Add(aCookie); 
+0

我感谢你的帮助,提供的代码没有为我工作,但我现在尝试不同的逻辑:)感谢队友 –

+0

如果我看到你的完整代码,我可以让它工作,你正在传递的东西..也看看,以确保你没有做全面回发,或者看看实施更新面板利用部分回发..干杯.. – MethodMan