2012-06-12 12 views
7

Stiamo ospitato su AppHarbor e usando il loro memcacher add-on, l'installazione come descritto nella loro documentazione:ASP.NET Cookieless Session URL Problema SOLO in Safari Mobile

<sessionState cookieless="false" regenerateExpiredSessionId="true" mode="Custom" 
      customProvider="MemcachedSessionProvider" xdt:Transform="Insert"> 
    <providers> 
    <add name="MemcachedSessionProvider" 
     type="MemcachedProviders.Session.SessionStateProvider,MemcachedProviders" 
     dbType="none" /> 
    </providers> 
</sessionState> 

Stiamo assistendo ad un problema che può essere riprodotto solo da:

  1. a seguito di un Twitter accorciato URL appfail.net all'interno iOS Safari (o l'applicazione Twitter per iPhone di in-built del browser webkit): http://t.co/6tRXopEJ
  2. Fare clic sul pulsante nostra 'Run Demo', w quindi firma automaticamente l'utente con il nostro account demo.

A questo punto il server emette un 302 reindirizzare a un URL non valido, ad esempio: http://appfail.net/(F(FckQ4UX0zD_WSxk_adpkk3YysHsYQS4TSVpljxmswyBqEAZ1q-YhW4KePrpYQfJ4KlLGaiyje_TbpeSARVyI8LioQ7Jp5EIc0Zm9u99IqRRkkoMh_wr-jrsrvje4J7KpUt1n87xEMzMeqHzpMz9ksm42IqNnf3F9B6GBwrnuA5EY_YsV0))/Applications

L'url sembra contenere un SessionID, nello stesso formato utilizzato da IIS per le sessioni senza cookie. Ciò avrebbe anche senso, dal momento che IIS può essere configurato per utilizzare i cookie senza sessione basati su UserAgent - da qui il motivo per cui si riproduce solo in Safari mobile (anche se non sono sicuro del motivo per cui accade solo con il reindirizzamento t.co/ e non quando caricando la pagina direttamente)

La cosa strana è che abbiamo sessioni senza cucina disattivate! Come puoi vedere nello stato della sessione sopra. Ho provato anche questo con l'impostazione 'cookieless = "UseCookies"' ... Nessuna fortuna!

Ho aggiunto la registrazione e ho anche verificato che il sistema sia configurato come "UseCookies" durante l'esecuzione.

Quindi, mi chiedo come possiamo reindirizzare gli utenti a un URL senza cookie, usando semplicemente RedirectToAction()?

Mi chiedo se questo potrebbe essere correlato al provider di stato sessione personalizzato - MemcachedProvider? O è qualcosa di più semplice?

Grazie Sam

+0

Hai provato a mollare il MemcachedProvider e a eseguire un sito di prova su un solo lavoratore per vedere se riesci a riprodurlo? – friism

risposta

Problemi correlati