2013-01-22 8 views
8

geçersiz.CookieException: çerez</p> <p><code>CookieException: The 'Path'='/applogin'</code> kısım geçersiz: çerez 'Yol' kısmı ben bir çerez yolunu ayarlamak çalışıyorum ama hep hata recieving am

kod şuna benzer:

Cookie newCookie = new Cookie("JSESSIONID", session.SessionId, "/applogin", "domain.com"); 
newCookie.Secure = true; 
webRequest.CookieContainer.Add(new Uri(@"https://domain.com"), newCookie); 

istisna son satırında ... kimse bana doğru yönde işaret edebilir throwen zaman?

cevap

0

Bazı tarayıcılarda yol büyük/küçük harfe duyarlıdır. "/ Applogin" ile ilgili tüm referansların vakayla tam olarak eşleştiğinden emin olun. Senin durumunda

http://msdn.microsoft.com/en-us/library/ms178194%28v=vs.85%29.aspx

+1

URL yolu * her zaman * büyük/küçük harf duyarlıdır. – Gumbo

+1

Linux/Unix büyük/küçük harfe duyarlıdırken, Windows web sunucuları büyük/küçük harf duyarlı değildir. Bunun nedeni, Linux'un/Unix'in büyük/küçük harfe duyarlı olmasına karşın, windows'un dosya sisteminin büyük/küçük harfe duyarlı olmamasıdır. Bununla birlikte, bir çerez isteği gerçekleştirilirken, tarayıcı çerez yolunu sunucuya hiçbir zaman göndermez, sunucunun ad/değer çiftlerinden ne ile döndüğünü karşılaştırır. Tüm tarayıcıların bu konuda büyük duyarlı olduğuna inanıyorum ama emin değilim. –

+0

URL yolları, bir web sunucusunun dosya yollarına giden URL yollarını nasıl eşleyeceğine bakılmaksızın, büyük/küçük harf duyarlı değildir. – Gumbo

8

iki URL'ler vardır: biri bir https://domain.com ve ikincisi bir https://domain.com/applogin olduğunu. CookieContainer'ın yol/applogin için çerezinizi içerdiğini varsayalım. Bu, URL https://domain.com/applogin için çerez listesi almaya çalışırsanız - bir çerez alırsınız demektir. https://domain.com URL'sini almak için çerezleri almaya çalışırsanız - 0 çerez alırsınız.

Şimdi örneğinize bakalım. https://domain.com/applogin için bir çereziniz var ve URL https://domain.com için CookieContrainer'a eklemeye çalışıyorsunuz. CookieContainer, bu urunun belirli url için kullanılamayacağını doğrular, çünkü farklı URL'ler için sorun oluşturuyordu. Sizin durumunuzda size çerez eklemek nerede hat değiştirmek gerekir:

webRequest.CookieContainer.Add(new Uri(@"https://domain.com/applogin"), newCookie); 

Yoksa sana bütün domain.com'da Bu çerez kullanmak istiyor sanırım - o zaman

Cookie newCookie = new Cookie("JSESSIONID", session.SessionId, "/", "domain.com"); 
bunu oluşturmak şeklini değiştirmek gerekir
İlgili konular