2012-05-31 35 views
0

在我的mvc3應用程序中,我將每個用戶的數據保存到會話中。如何將會話保存在mvc3中被阻止的Cookie

HttpContext.Current.Session["UserName"] = "Jon"; 

問題出在Safari瀏覽器。 默認設置爲:「阻止來自第三方和廣告商的Cookie」。所以會話不會被保存。我找到了解決辦法:

var ticket = new FormsAuthenticationTicket(
       1, 
       "currentUser", 
       DateTime.Now, 
       DateTime.Now.AddMinutes(30), 
       false, 
       null); 

       string encryptedTicket = FormsAuthentication.Encrypt(ticket); 
       var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket); 

       this.Response.Cookies.Add(cookie); 

但是,只有在本地主機上該解決方案的工作,是不是在服務器上工作... 是任何人有這個問題的替代解決方案?或者可以解釋爲什麼我的解決方案不能在服務器上運行

回答

0

嘗試將cookie的域屬性設置爲完全匹配的域名您的工作服務器是,這樣的:

var cookie = new HttpCookie(... 
cookie.Domain = "Microsoft.com"; 

一旦你這樣做,你的Cookie是第一方Cookie (而不是第三方)。

+0

嗨。這不工作...... :( –