Ho un controllo che ho scritto che ha un componente javascript e un componente del servizio web. Il problema che sto avendo è che il javascript è impostato a che fare:Come posso interrompere l'autenticazione/sessione dei moduli ASP dal rinnovo nella chiamata al servizio web ajax setInterval?
setInterval(this._checkAlertsHandler, this._messageCheckInterval * 1000);
Ciò richiede una funzione che effettua una chiamata webservice in questo modo:
Alert.SiteAlertService.GetAlerts(this._receivedAlertsHandler, this._errorReceivedAlertsHandler);
Quindi questo sta usando il servizio di web javascript di proxy metodi per accedere al servizio web. Il problema è che la nostra applicazione ha l'autenticazione delle forme e un valore di timeout, quindi se l'utente è inattivo troppo a lungo, le registrerà.
La mia chiamata al servizio web invia apparentemente il cookie che include la sessione e la chiave di autenticazione dei moduli per il servizio Web. Il webservice asp.net rinnova automaticamente la sessione E l'autenticazione dei moduli. Ogni volta che il javascript raggiunge il servizio web, in pratica mantiene vivo l'utente. Non voglio questo comportamento, questo dovrebbe solo aggirarlo, in modo che anche se questo js sta colpendo il servizio web per verificare la presenza di nuovi messaggi, se l'utente non ha fatto un postback sulla nostra applicazione (ed è effettivamente inattivo) li registro ancora. (
Quello che mi piacerebbe accadesse è che questa chiamata di intervallo al servizio web non rinnova alcuna autenticazione (il rinnovo della sessione posso aggirare usando una variabile a livello di applicazione con chiave/valore del dizionario per la sessione di utenti id, in modo da non devo utilizzare tutte le variabili livello di sessione).
Come faccio a fare questo/cambiare il mio servizio web/o di controllo per funzionare come il modo in cui lo voglio?
Ho provato questo, aggiunto nel mio web.config nella base della mia applicazione. Sembra che quando il mio javascript colpisce il webservice, è ancora rinnovandola ... - Ho il timeout impostato a 1 minuto sul sito, e una volta che si arriva al filo, normalmente, senza questa l'esecuzione di JavaScript verrà aggiornata e rimettiti alla pagina di accesso. Ma con l'esecuzione del javascript e colpire il servizio web, rinfresca, e conserva ancora si loggato. Il servizio web che colpisce inoltre usa EnableSession = true sulle WebMethods e ha anche IRequireSessionSate sulla classe object.Could la sessione di essere il colpevole qui? – lslow00
Ho appena provato ad agganciarlo a un servizio web che era piuttosto semplice, non ha riferimenti alle sessioni, ecc. Solo una semplice funzione che restituisce il mondo Ciao. Lo slidingExpiration non sembra essere disattivato quando colpisce il servizio, perché non disconnetterà mai l'utente. – lslow00
Io ho usato realmente una risposta a questo, come è del tutto distruggendo le nostre applicazioni meccanismo di logout di inattività – lslow00