2010-03-09 3 views
3

J'essaie de définir le port sur un cookie dans ASP.NET (code ci-dessous), mais j'obtiens une erreur très inhabituelle à l'exécution (sous le code). Des pensées?Définition du port de cookie

target.Cookie = new Cookie 
{ 
    Comment = "Test Comment", 
    CommentUri = new System.Uri("http://www.tempuri.org"), 
    Discard = false, 
    Domain = "tempuri.com", 
    Expired = false, 
    Expires = new DateTime(2015, 12, 31), 
    HttpOnly = false, 
    Name = "TestCookie", 
    Path = "/", 
    Port = "443", 
    Secure = false, 
    Value = "Test Value", 
    Version = 1, 
}; 

Exception:

System.Net.CookieException: The 'Port'='443' part of the cookie is invalid.. 

Edit: Désolé, je voulais dire que j'ai aussi essayé Port = "80" sans succès.

Répondre

1

Malheureusement, je n'ai jamais trouvé une bonne solution à cela. Tout ce que j'ai fini par faire est de supprimer la définition du port. J'ai remarqué quelque chose dans la spécification W3C pour les cookies concernant les ports, et si je me souviens bien, les cookies de la version 2 ne supportent pas la spécification d'un port. J'ai essayé de créer le cookie sans le port, puis le réglage du port plus tard, mais sans chance. Je continue à obtenir une exception d'exécution de ...threw exception: System.Net.CookieException: The 'Port'='80' part of the cookie is invalid..

Désolé, ce n'était pas plus d'aide ...

1

Le port 443 est utilisé pour les connexions SSL, mais vous avez la propriété Secure comme étant fausse. Si vous souhaitez utiliser le port 443, spécifiez Secure = true.

+0

Désolé, je voulais ajouter que j'ai essayé Port = "80" sans succès, ce qui ne devrait pas exiger Secure = true – CodeMonkey1313

+0

Y a-t-il une raison spécifique pour laquelle vous définissez le port du cookie? Pour les requêtes web, ça va aller au-delà de 80 ou 443. Cela ne changera pas. – Brownman98

0

peu en retard, je sais, mais a rencontré un problème similaire et des ports doit être entre guillemets délimités par des virgules.

port = @"""80,8080""" 

« ... Sinon, la valeur doit être une chaîne entre guillemets qui contient des valeurs de port délimitées par des virgules. »

MSDN Docs for Port Property

Questions connexes