Utilizzando DotNetOpenAuth 3 in ASP.NET MVC e l'attuazione di un impianto RememberMe ...RememberMe con DotNetOpenId in ASP.NET MVC
Ho constatato che, anche se ho impostato createPersistentCookie al vero in FormsAuthentication.RedirectFromLoginPage e FormsAuthentication. SetAuthCookie l'utente non viene ricordato una volta scaduta la sessione ASP.NET.
Se controllo il cookie, trovo che sia contrassegnato come persistente e che abbia una data di scadenza in futuro, presumo perché ho impostato il timeout FORMS web.config a qualche anno di distanza. In ogni caso, se l'utente chiude il browser e lo riapre, vengono ricordati correttamente, purché la sessione ASP non sia scaduta.
An older post di Scott Hanselmann di mi domando se è perché FormsAuthentication cerca di rinnovare il ticket di autenticazione e magari in un modello OpenID che non funziona, ma ho impostato FORME slidingExpiration = "false" nel web.config e comunque io pensavo che forzare un cookie persistente avrebbe reso quella roba irrilevante.
Mi chiedo anche perché il campione MVC DotNetOpenId non include una casella di controllo RememberMe - forse c'è qualcosa di complicato a riguardo?
D'altra parte, qui a StackOverflow vedo che sono automaticamente ricordato tra le sessioni. Mi chiedo se hanno usato qualcosa di diverso da DotNetOpenId per fare la loro autenticazione OpenId.
Chiunque altro ha fatto RememberMe con successo con DotNetOpenId in ASP.NET MVC? Qualche trucco?
[Update]
Grazie per cercare di aiutare, Andrew. Si è scoperto che non si trattava di DotNetOpenId.
Raccolgo, dopo aver letto this, che il mio provider di hosting sta probabilmente riciclando il pool di app regolarmente e ciò sta causando la crittografia del ticket di autenticazione da eseguire con una nuova chiave di macchina.
Come per il precedente articolo collegato ho aggiunto il seguente punto System.Web nel mio web.config ed è risolto il problema:
<machineKey
validationKey="(generated a new key to place here)"
decryptionKey="(generated a new key to place here)"
validation="SHA1"
decryption="AES" />
Hi Martin, StackOverflow utilizza effettivamente DotNetOpenId. Penso che il tuo problema con la sessione di cookie probabilmente non ha nulla a che fare con OpenID, dal momento che non penso ci sia alcuna possibilità che DNOI interferisca con il tuo cookie e non registra mai un utente. Cercherò di fare qualche ricerca su questo e pubblicare una risposta se imparo qualcosa. –
Grazie per questo. Mi ha aiutato. Dovresti postare la tua soluzione come risposta in modo che possa essere upvoted e ottenere il badge "self learner" – BigJoe714