2010-11-29 5 views
1

J'utilise la solution d'authentification ASP.NET par défaut. Maintenant, j'ai des sous-domaines sur mon serveur (par exemple, example.com, blog.example.com, forum.example.com ...) La connexion se fait sur example.com, et donne un cookie d'authentification. Mais quand je vais sur forum.example.com, je suis redirigé pour me connecter. Y a-t-il des paramètres de configuration pour que la connexion fonctionne pour * .example.com?Authentification de sous-domaine

Il est à noter que les cookies sont émis en tant que "example.com" pour le domaine. Donc je l'ai changé en ".example.com" basé sur quelques lectures, et maintenant l'authentification de sous-domaine fonctionne. Quelqu'un en mesure d'expliquer?

+1

double possible de [formulaires d'authentification dans les sous-domaines] (http://stackoverflow.com/questions/608120/forms-authentication-across-sub-domains) – rcdmk

Répondre

0

Selon RFC 2109, si vous ne préfixez pas un point sur le domaine, il est invalide et le cookie doit être rejeté. De RFC 2109

domaine = domaine en option. L'attribut Domain spécifie le domaine pour lequel le cookie est valide. Un domaine explicitement spécifié doit toujours commencer par avec un point.

4.3.2 Rejecting Cookies 

    To prevent possible security or privacy violations, a user agent 
    rejects a cookie (shall not store its information) if any of the 
    following is true: 

    * The value for the Path attribute is not a prefix of the request- 
    URI. 

    * The value for the Domain attribute contains no embedded dots or 
    does not start with a dot. 
+0

Mais le cookie auth pour ASP. NET ne commence pas avec un point; "company.com" – StuckIt

+0

Je suis confus, d'où obtenez-vous la valeur "company.com" de? – Iain

+0

C'est un exemple. Jetez un oeil au cookie d'authentification pour ASP.NET4 et il est défini comme "company.com" et non ".company.com". Pourtant, selon votre commentaire ci-dessus, ne pas utiliser un point à l'avant est contre la convention ...? – StuckIt