Je vais voir des demandes sur mon serveur qui semblent être faites par un anynomous client, même si je suis certains qu'ils ont été faites par un utilisateur authentifié - j'ai fiddler journaux montrant que le client a envoyé valide asp.net auth les cookies, et les journaux de serveur indiquant que le cookie est arrivé et est valide. Le problème a été observé sur tous les navigateurs.
Le flux des données est:
- Visites de l'utilisateur l'url de connexion, sur une machine faisant partie d'un webfarm (tous avec la même machine, décrypter les clés)
- La réussite de l'authentification de formulaires, l'utilisateur est rediriger vers une restriction de l'url de leur page d'accueil
- Page d'accueil s'affiche correctement, appelés l'identité de l'utilisateur, et comprend javascript pour effectuer des 7 asynchrone post-dos pour obtenir des données supplémentaires
- Javascript coup d'envoi de la 7 http.les requêtes get, frapper les différentes machines dans le webfarm (à supposer round robin)
- Serveur valide la demande: ~0.01% ne parviennent pas à s'authentifier.
Pensées?
Maintenant dans les détails:
Un très petit nombre de requêtes asynchrones terre à mon serveur (avec la preuve qu'ils n'étaient pas manipulés ou faux) et semblent être anonyme. Du 7 demandes, un certain nombre peut ou peut ne pas fonctionner (c'est à dire, 5/7 va réussir, 2 échouera). Il ne semble pas être n'importe quel des modèles de réussite ou d'échec. Dans le cas où ma demande semble être anonyme, le CurrentPrincipal.L'identité des enregistrements:
Thread.CurrentPrincipal.Identity.IsAuthenticated; // false
Thread.CurrentPrincipal.Identity.Name; // null (or empty, unsure off hand)
Dumping http.contexte.demande.params collection dans un fichier journal, je suis en mesure de voir la suite pertinents (et nettoyée) propriétés (complet params ci-dessous):
context: {"userId":10000,"userName":"johnsmith"}
HTTP_COOKIE:.ASPXAUTH=[valid auth cookie value]
HTTP_X_REQUESTED_WITH:XMLHttpRequest
X-Requested-With: XMLHttpRequest
AUTH_TYPE:
AUTH_USER:
AUTH_PASSWORD:
LOGON_USER:
REMOTE_USER:
HTTP_COOKIE: .ASPXAUTH=[valid auth cookie value]
Je sais que l'auth cookie est valide - au cours de ces mêmes requêtes que je suis en mesure de déchiffrer les auth cookie et extraire les éléments suivants:
CookiePath: /
Expiration: 9/23/2105 8:14:22 PM
Expired: False
IsPersistent: True
IssueDate: 8/30/2010 2:54:22 PM
Name: johnsmith
UserData:
Version: 2
Pas sûr de savoir comment procéder à ce point. Ce problème semble avoir été exacerbée avec notre récente migration mvc 2.0 / asp.net 4.0, mais ma confiance n'est pas élevé qui en était la cause.
J'en suis arrivé à une poignée de mes clients qui ont eu ce problème, et c'est encore plus frustrant (mais ne reflètent ce que je suis capable de lire dans les journaux). Une fois dans cet état, il est difficile de s'en sortir. Effacer la mémoire cache et les cookies semblent avoir aucun effet. Mais, le passage à une nouvelle fenêtre de navigateur, et il est généralement OK. De même, une attente de plusieurs heures et revenir avec le même navigateur et il est aussi généralement ok, mais pas toujours. Comme indiqué précédemment, cela se voit sur tous les navigateurs.
Toutes les suggestions?
Kevin
------------
Voici le reste de l'extrait de journal (nettoyée pour pii) que j'ai capturé:
8/30/2010 2:54:43 PM: Anonymous user detected:
Identity Name:
IsAuthenticated::False
HttpContextInformation to follow:
8/30/2010 2:54:43 PM: Request Param collection contents:
context: {"userId":10000,"userName":"johnsmith"}
.ASPXAUTH: A3C6615642F1F543397160C84C0E016C8439BDF400B0130AADAB82C93E77FFF3BEAD7726223F02049FA65B2C3E1773928C0371C4F580F2432C1538551BC5654020AD76F37159BA6BB68D7A68744AE036
ASP.NET_SessionId: m5vit3cyv0rsiosqg5xmhhuu
ALL_HTTP: HTTP_CONNECTION:close
HTTP_ACCEPT:text/javascript, text/html, application/xml, text/xml, */*
HTTP_ACCEPT_ENCODING:gzip, deflate
HTTP_ACCEPT_LANGUAGE:en-us
HTTP_COOKIE:.ASPXAUTH=A3C6615642F1F543397160C84C0E016C8439BDF400B0130AADAB82C93E77FFF3BEAD7726223F02049FA65B2C3E1773928C0371C4F580F2432C1538551BC5654020AD76F37159BA6BB68D7A68744AE036
HTTP_HOST:www.host.com
HTTP_REFERER:http://www.host.com/
HTTP_USER_AGENT:Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7
HTTP_X_FORWARDED_FOR:166.137.139.139
HTTP_X_REQUESTED_WITH:XMLHttpRequest
ALL_RAW: Connection: close
Accept: text/javascript, text/html, application/xml, text/xml, */*
Accept-Encoding: gzip, deflate
Accept-Language: en-us
Cookie: .ASPXAUTH=A3C6615642F1F543397160C84C0E016C8439BDF400B0130AADAB82C93E77FFF3BEAD7726223F02049FA65B2C3E1773928C0371C4F580F2432C1538551BC5654020AD76F37159BA6BB68D7A68744AE036
Host: www.host.com
Referer: http://www.host.com/
User-Agent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7
X-Forwarded-For: 166.137.139.139
X-Requested-With: XMLHttpRequest
APPL_MD_PATH: /LM/W3SVC/792523/Root
APPL_PHYSICAL_PATH: d:\localpath\
AUTH_TYPE:
AUTH_USER:
AUTH_PASSWORD:
LOGON_USER:
REMOTE_USER:
CERT_COOKIE:
CERT_FLAGS:
CERT_ISSUER:
CERT_KEYSIZE:
CERT_SECRETKEYSIZE:
CERT_SERIALNUMBER:
CERT_SERVER_ISSUER:
CERT_SERVER_SUBJECT:
CERT_SUBJECT:
CONTENT_LENGTH: 0
CONTENT_TYPE:
GATEWAY_INTERFACE: CGI/1.1
HTTPS: off
HTTPS_KEYSIZE:
HTTPS_SECRETKEYSIZE:
HTTPS_SERVER_ISSUER:
HTTPS_SERVER_SUBJECT:
INSTANCE_ID: 792523
INSTANCE_META_PATH: /LM/W3SVC/792523
LOCAL_ADDR: 10.248.50.207
PATH_INFO: /resource
PATH_TRANSLATED: d:\localpath\resource
QUERY_STRING: context={%22userId%22:10000,%22userName%22:%22johnsmith%22}
REMOTE_ADDR: 10.208.205.171
REMOTE_HOST: 10.208.205.171
REMOTE_PORT: 37966
REQUEST_METHOD: GET
SCRIPT_NAME: /resouce
SERVER_NAME: www.host.com
SERVER_PORT: 80
SERVER_PORT_SECURE: 0
SERVER_PROTOCOL: HTTP/1.0
SERVER_SOFTWARE: Microsoft-IIS/6.0
URL: /resource
HTTP_CONNECTION: close
HTTP_ACCEPT: text/javascript, text/html, application/xml, text/xml, */*
HTTP_ACCEPT_ENCODING: gzip, deflate
HTTP_ACCEPT_LANGUAGE: en-us
HTTP_COOKIE: .ASPXAUTH=A3C6615642F1F543397160C84C0E016C8439BDF400B0130AADAB82C93E77FFF3BEAD7726223F02049FA65B2C3E1773928C0371C4F580F2432C1538551BC5654020AD76F37159BA6BB68D7A68744AE036
HTTP_HOST: www.host.com
HTTP_REFERER: http://www.host.com/
HTTP_USER_AGENT: Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7
HTTP_X_FORWARDED_FOR: 166.137.139.139
HTTP_X_REQUESTED_WITH: XMLHttpRequest
8/30/2010 2:54:43 PM: Auth Ticket collection contents:
CookiePath: /
Expiration: 9/23/2105 8:14:22 PM
Expired: False
IsPersistent: True
IssueDate: 8/30/2010 2:54:22 PM
Name: johnsmith
UserData:
Version: 2