OVH Cloud OVH Cloud

Détecter les déconnexions des utilisateurs sur une appli web

8 réponses
Avatar
Sylvain
Bonjour à tous,

Nous avons développé une application web que nous proposons à nos clients
sous forme de location.
Le client achète un certain nombre de licences pour une durée fixée.

Afin de renforcer la sécurité de notre application et surtout nous protéger,
nous voudrions contrôler qu'un utilisateur ne peut pas être logger dans
l'application plus d'une fois en même temps.
Nous voulons pas qu'un client créer un utilisateur commun et que celui ci
soit utilisé par toutes la société.

Hélas je ne vois pas comment faire cela, car nous ne pouvons pas détecter
quand un utilisateur ferme brutalement la fenêtre.
Notre système de login est basique, un simple login/password.

Quelqu'un aurait une idée ???
Merci d'avance
--
Sylvain Duvernay

8 réponses

Avatar
Paul Bacelar
Plan Business étrange.

Le client ne pourra pas avoir plusieurs navigateurs ouverts avec un compte ?
--
Paul Bacelar
MVP VC++


"Sylvain" wrote in message
news:
Bonjour à tous,

Nous avons développé une application web que nous proposons à nos clients
sous forme de location.
Le client achète un certain nombre de licences pour une durée fixée.

Afin de renforcer la sécurité de notre application et surtout nous
protéger,
nous voudrions contrôler qu'un utilisateur ne peut pas être logger dans
l'application plus d'une fois en même temps.
Nous voulons pas qu'un client créer un utilisateur commun et que celui ci
soit utilisé par toutes la société.

Hélas je ne vois pas comment faire cela, car nous ne pouvons pas détecter
quand un utilisateur ferme brutalement la fenêtre.
Notre système de login est basique, un simple login/password.

Quelqu'un aurait une idée ???
Merci d'avance
--
Sylvain Duvernay



Avatar
Sylvain Lafontaine
En effet, ce plan d'affaires part du précepte que la grande majorité des
clients sont avant tout des gens malhonnêtes et tricheurs.

En général, avec une société sérieuse, si le logiciel est bon alors il n'y a
pas de problème pour en vendre des licences. C'est quand le logiciel ne
remplit pas ses promesses que les véritables problèmes commencent et ce
n'est pas en tapant sur la tête de vos clients que vous allez régler ce
genre de problème là.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: http://cerbermail.com/?QugbLEWINF


"Paul Bacelar" wrote in message
news:
Plan Business étrange.

Le client ne pourra pas avoir plusieurs navigateurs ouverts avec un compte
?
--
Paul Bacelar
MVP VC++


"Sylvain" wrote in message
news:
Bonjour à tous,

Nous avons développé une application web que nous proposons à nos clients
sous forme de location.
Le client achète un certain nombre de licences pour une durée fixée.

Afin de renforcer la sécurité de notre application et surtout nous
protéger,
nous voudrions contrôler qu'un utilisateur ne peut pas être logger dans
l'application plus d'une fois en même temps.
Nous voulons pas qu'un client créer un utilisateur commun et que celui ci
soit utilisé par toutes la société.

Hélas je ne vois pas comment faire cela, car nous ne pouvons pas détecter
quand un utilisateur ferme brutalement la fenêtre.
Notre système de login est basique, un simple login/password.

Quelqu'un aurait une idée ???
Merci d'avance
--
Sylvain Duvernay







Avatar
Sylvain
Bonjour Messieurs

Je vous fait remarquer qu'aucune de vos réponses ne concernent le sujet de
la question...qui n'est pas de savoir pourquoi l'on veut faire ça mais
comment le faire.

En outre,nous pensons que notre application est bonne tout comme nous
pensons que nos clients sont honnêtes. Cependant nous ne voulons pas tenter
le diable...

--
Sylvain Duvernay


"Sylvain Lafontaine" a écrit :

En effet, ce plan d'affaires part du précepte que la grande majorité des
clients sont avant tout des gens malhonnêtes et tricheurs.

En général, avec une société sérieuse, si le logiciel est bon alors il n'y a
pas de problème pour en vendre des licences. C'est quand le logiciel ne
remplit pas ses promesses que les véritables problèmes commencent et ce
n'est pas en tapant sur la tête de vos clients que vous allez régler ce
genre de problème là.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: http://cerbermail.com/?QugbLEWINF


"Paul Bacelar" wrote in message
news:
> Plan Business étrange.
>
> Le client ne pourra pas avoir plusieurs navigateurs ouverts avec un compte
> ?
> --
> Paul Bacelar
> MVP VC++
>
>
> "Sylvain" wrote in message
> news:
>> Bonjour à tous,
>>
>> Nous avons développé une application web que nous proposons à nos clients
>> sous forme de location.
>> Le client achète un certain nombre de licences pour une durée fixée.
>>
>> Afin de renforcer la sécurité de notre application et surtout nous
>> protéger,
>> nous voudrions contrôler qu'un utilisateur ne peut pas être logger dans
>> l'application plus d'une fois en même temps.
>> Nous voulons pas qu'un client créer un utilisateur commun et que celui ci
>> soit utilisé par toutes la société.
>>
>> Hélas je ne vois pas comment faire cela, car nous ne pouvons pas détecter
>> quand un utilisateur ferme brutalement la fenêtre.
>> Notre système de login est basique, un simple login/password.
>>
>> Quelqu'un aurait une idée ???
>> Merci d'avance
>> --
>> Sylvain Duvernay
>>
>
>





Avatar
Paul Bacelar
Ma réponse est que ce n'est vraiment pas simple et que votre exposé semble
montrer que vous n'avez pas pris en compte des cas très courants (et tout à
fait licite) d'utilisation d'une application Web, à savoir, l'utilisation de
plusieurs navigateur par un "client".

Avant de faire des pieds et des mains pour utiliser une technologies qui n'a
pas été conçu, et c'est très logique, pour un cas très étrange
"d'utilisation" (plan business bancale), il faut vérifier que l'on ne fait
pas fausse route ;-).
--
Paul Bacelar
MVP VC++


"Sylvain" wrote in message
news:
Bonjour Messieurs

Je vous fait remarquer qu'aucune de vos réponses ne concernent le sujet de
la question...qui n'est pas de savoir pourquoi l'on veut faire ça mais
comment le faire.

En outre,nous pensons que notre application est bonne tout comme nous
pensons que nos clients sont honnêtes. Cependant nous ne voulons pas
tenter
le diable...

--
Sylvain Duvernay


"Sylvain Lafontaine" a écrit :

En effet, ce plan d'affaires part du précepte que la grande majorité des
clients sont avant tout des gens malhonnêtes et tricheurs.

En général, avec une société sérieuse, si le logiciel est bon alors il
n'y a
pas de problème pour en vendre des licences. C'est quand le logiciel ne
remplit pas ses promesses que les véritables problèmes commencent et ce
n'est pas en tapant sur la tête de vos clients que vous allez régler ce
genre de problème là.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: http://cerbermail.com/?QugbLEWINF


"Paul Bacelar" wrote in message
news:
> Plan Business étrange.
>
> Le client ne pourra pas avoir plusieurs navigateurs ouverts avec un
> compte
> ?
> --
> Paul Bacelar
> MVP VC++
>
>
> "Sylvain" wrote in message
> news:
>> Bonjour à tous,
>>
>> Nous avons développé une application web que nous proposons à nos
>> clients
>> sous forme de location.
>> Le client achète un certain nombre de licences pour une durée fixée.
>>
>> Afin de renforcer la sécurité de notre application et surtout nous
>> protéger,
>> nous voudrions contrôler qu'un utilisateur ne peut pas être logger
>> dans
>> l'application plus d'une fois en même temps.
>> Nous voulons pas qu'un client créer un utilisateur commun et que celui
>> ci
>> soit utilisé par toutes la société.
>>
>> Hélas je ne vois pas comment faire cela, car nous ne pouvons pas
>> détecter
>> quand un utilisateur ferme brutalement la fenêtre.
>> Notre système de login est basique, un simple login/password.
>>
>> Quelqu'un aurait une idée ???
>> Merci d'avance
>> --
>> Sylvain Duvernay
>>
>
>







Avatar
Julien Bakmezdjian [MS]
Bonjour,

J'imagine qu'il vous est déjà possible de connaître la liste des
utilisateurs ayant une session ouverte -en DB par exemple (ce qui vous
permet de refuser une demande d'authentification ultérieure avec le même
login).
Il y a 3 occasions je pense où il faut retirer un utilisateur de la liste :
- la session expire : on peut retirer l'utilisateur depuis le
global.asax
- l'utilisateur se déconnecte en cliquant sur un bouton "sign-out". Là,
c'est facile, il suffit d'enlever l'utilisateur depuis le gestionnaire du
bouton
- l'utilisateur ferme son IE avant l'expiration de la session. Là, c'est
plus compliqué et j'imagine que c'est le sens de votre question. Peut-être
une solution serait-elle d'ajouter du code client (Javascript) qui s'abonne
à l'événement "window.onclose". Le javascript enverrait une commande au
serveur pour signaler que cette utilisateur peut être retiré de la liste des
utilisateurs courants. Ce pourrait être fait via un Web service par exemple
ou avec une simple requête GET vers une page spécifique de votre application
(en passant en paramètre le nom de l'utilisateur à retirrer de la liste).

J'espère que cela peut vous aider.

Cordialement,

Julien Bakmezdjian


"Sylvain" wrote in message
news:
Bonjour à tous,

Nous avons développé une application web que nous proposons à nos clients
sous forme de location.
Le client achète un certain nombre de licences pour une durée fixée.

Afin de renforcer la sécurité de notre application et surtout nous
protéger,
nous voudrions contrôler qu'un utilisateur ne peut pas être logger dans
l'application plus d'une fois en même temps.
Nous voulons pas qu'un client créer un utilisateur commun et que celui ci
soit utilisé par toutes la société.

Hélas je ne vois pas comment faire cela, car nous ne pouvons pas détecter
quand un utilisateur ferme brutalement la fenêtre.
Notre système de login est basique, un simple login/password.

Quelqu'un aurait une idée ???
Merci d'avance
--
Sylvain Duvernay



Avatar
Sylvain
Bonjour Julien,

Merci pour ta réponse.
--
Sylvain Duvernay

Mon problème se pose effectivement quand l'utilisateur ferme brutalement son
Internet Explorer.
Pourrais tu me donner plus de détail sur comment appeler un service web
depuis du javavascript ? Aurais tu un exemple peut-être ?

Merci d'avance pour ton aide.

"Julien Bakmezdjian [MS]" a écrit :

Bonjour,

J'imagine qu'il vous est déjà possible de connaître la liste des
utilisateurs ayant une session ouverte -en DB par exemple (ce qui vous
permet de refuser une demande d'authentification ultérieure avec le même
login).
Il y a 3 occasions je pense où il faut retirer un utilisateur de la liste :
- la session expire : on peut retirer l'utilisateur depuis le
global.asax
- l'utilisateur se déconnecte en cliquant sur un bouton "sign-out". Là,
c'est facile, il suffit d'enlever l'utilisateur depuis le gestionnaire du
bouton
- l'utilisateur ferme son IE avant l'expiration de la session. Là, c'est
plus compliqué et j'imagine que c'est le sens de votre question. Peut-être
une solution serait-elle d'ajouter du code client (Javascript) qui s'abonne
à l'événement "window.onclose". Le javascript enverrait une commande au
serveur pour signaler que cette utilisateur peut être retiré de la liste des
utilisateurs courants. Ce pourrait être fait via un Web service par exemple
ou avec une simple requête GET vers une page spécifique de votre application
(en passant en paramètre le nom de l'utilisateur à retirrer de la liste).

J'espère que cela peut vous aider.

Cordialement,

Julien Bakmezdjian


"Sylvain" wrote in message
news:
> Bonjour à tous,
>
> Nous avons développé une application web que nous proposons à nos clients
> sous forme de location.
> Le client achète un certain nombre de licences pour une durée fixée.
>
> Afin de renforcer la sécurité de notre application et surtout nous
> protéger,
> nous voudrions contrôler qu'un utilisateur ne peut pas être logger dans
> l'application plus d'une fois en même temps.
> Nous voulons pas qu'un client créer un utilisateur commun et que celui ci
> soit utilisé par toutes la société.
>
> Hélas je ne vois pas comment faire cela, car nous ne pouvons pas détecter
> quand un utilisateur ferme brutalement la fenêtre.
> Notre système de login est basique, un simple login/password.
>
> Quelqu'un aurait une idée ???
> Merci d'avance
> --
> Sylvain Duvernay
>





Avatar
Arnaud CLERET
Bonjour,

Les appels d'un web service depuis JavaScript se base sur XmlHttp qui permet
d'effectuer des requêtes Http et d'en récupérer la réponse.

Toutefois, par rapport à votre problématique, vous ne pourrez en aucun cas
résoudre le problème d'un utilisateur qui perdrait le réseau brusquement.
Votre script ne pourra donc pas avertir votre serveur que la personne s'est
déconnectée et de ce fait provoquera un bug fonctionnelle lors de la
prochaine tentative de connexion par l'utilisateur qui recevra un message
d'erreur lui indiquant qu'il est déjà connecté !
--
arno - http://www.dotnetguru2.org/acleret/


"Sylvain" a écrit :

Bonjour Julien,

Merci pour ta réponse.
--
Sylvain Duvernay

Mon problème se pose effectivement quand l'utilisateur ferme brutalement son
Internet Explorer.
Pourrais tu me donner plus de détail sur comment appeler un service web
depuis du javavascript ? Aurais tu un exemple peut-être ?

Merci d'avance pour ton aide.

"Julien Bakmezdjian [MS]" a écrit :

> Bonjour,
>
> J'imagine qu'il vous est déjà possible de connaître la liste des
> utilisateurs ayant une session ouverte -en DB par exemple (ce qui vous
> permet de refuser une demande d'authentification ultérieure avec le même
> login).
> Il y a 3 occasions je pense où il faut retirer un utilisateur de la liste :
> - la session expire : on peut retirer l'utilisateur depuis le
> global.asax
> - l'utilisateur se déconnecte en cliquant sur un bouton "sign-out". Là,
> c'est facile, il suffit d'enlever l'utilisateur depuis le gestionnaire du
> bouton
> - l'utilisateur ferme son IE avant l'expiration de la session. Là, c'est
> plus compliqué et j'imagine que c'est le sens de votre question. Peut-être
> une solution serait-elle d'ajouter du code client (Javascript) qui s'abonne
> à l'événement "window.onclose". Le javascript enverrait une commande au
> serveur pour signaler que cette utilisateur peut être retiré de la liste des
> utilisateurs courants. Ce pourrait être fait via un Web service par exemple
> ou avec une simple requête GET vers une page spécifique de votre application
> (en passant en paramètre le nom de l'utilisateur à retirrer de la liste).
>
> J'espère que cela peut vous aider.
>
> Cordialement,
>
> Julien Bakmezdjian
>
>
> "Sylvain" wrote in message
> news:
> > Bonjour à tous,
> >
> > Nous avons développé une application web que nous proposons à nos clients
> > sous forme de location.
> > Le client achète un certain nombre de licences pour une durée fixée.
> >
> > Afin de renforcer la sécurité de notre application et surtout nous
> > protéger,
> > nous voudrions contrôler qu'un utilisateur ne peut pas être logger dans
> > l'application plus d'une fois en même temps.
> > Nous voulons pas qu'un client créer un utilisateur commun et que celui ci
> > soit utilisé par toutes la société.
> >
> > Hélas je ne vois pas comment faire cela, car nous ne pouvons pas détecter
> > quand un utilisateur ferme brutalement la fenêtre.
> > Notre système de login est basique, un simple login/password.
> >
> > Quelqu'un aurait une idée ???
> > Merci d'avance
> > --
> > Sylvain Duvernay
> >
>
>
>


Avatar
Patrice
Une autre possibilité serait d'associer un "numéro de session" à
l'utilisateur au moment de la connexion. A la prochaine connexion avec le
même compte, ce numéro change et l'utilisateur précédemment connecté serait
alors déconnecter au profit de celui ci (l'avantage est que l'expiration n'a
plus d'importance, l'inconvénient est que le dernier connecté est celui qui
est servi au détriment du premier connecté).

Sinon pour éviter de gérer les fins de connexions je pensais à quelque chose
comme une détection de l'utilisation "croisée" d'un compte (un compte est
utilisé sur une 1ère session, puis sur une 2ème, si il est est à nouveau
utilisé sur une 1ère session, c'est que la deuxième session est "illégale"
et sera donc à supprimer).

Bon courage.

--
Patrice

"Sylvain" a écrit dans le message de
news:
Bonjour Julien,

Merci pour ta réponse.
--
Sylvain Duvernay

Mon problème se pose effectivement quand l'utilisateur ferme brutalement
son
Internet Explorer.
Pourrais tu me donner plus de détail sur comment appeler un service web
depuis du javavascript ? Aurais tu un exemple peut-être ?

Merci d'avance pour ton aide.

"Julien Bakmezdjian [MS]" a écrit :

Bonjour,

J'imagine qu'il vous est déjà possible de connaître la liste des
utilisateurs ayant une session ouverte -en DB par exemple (ce qui vous
permet de refuser une demande d'authentification ultérieure avec le même
login).
Il y a 3 occasions je pense où il faut retirer un utilisateur de la liste
:
- la session expire : on peut retirer l'utilisateur depuis le
global.asax
- l'utilisateur se déconnecte en cliquant sur un bouton "sign-out".
Là,
c'est facile, il suffit d'enlever l'utilisateur depuis le gestionnaire du
bouton
- l'utilisateur ferme son IE avant l'expiration de la session. Là,
c'est
plus compliqué et j'imagine que c'est le sens de votre question.
Peut-être
une solution serait-elle d'ajouter du code client (Javascript) qui
s'abonne
à l'événement "window.onclose". Le javascript enverrait une commande au
serveur pour signaler que cette utilisateur peut être retiré de la liste
des
utilisateurs courants. Ce pourrait être fait via un Web service par
exemple
ou avec une simple requête GET vers une page spécifique de votre
application
(en passant en paramètre le nom de l'utilisateur à retirrer de la liste).

J'espère que cela peut vous aider.

Cordialement,

Julien Bakmezdjian


"Sylvain" wrote in message
news:
> Bonjour à tous,
>
> Nous avons développé une application web que nous proposons à nos
> clients
> sous forme de location.
> Le client achète un certain nombre de licences pour une durée fixée.
>
> Afin de renforcer la sécurité de notre application et surtout nous
> protéger,
> nous voudrions contrôler qu'un utilisateur ne peut pas être logger dans
> l'application plus d'une fois en même temps.
> Nous voulons pas qu'un client créer un utilisateur commun et que celui
> ci
> soit utilisé par toutes la société.
>
> Hélas je ne vois pas comment faire cela, car nous ne pouvons pas
> détecter
> quand un utilisateur ferme brutalement la fenêtre.
> Notre système de login est basique, un simple login/password.
>
> Quelqu'un aurait une idée ???
> Merci d'avance
> --
> Sylvain Duvernay
>