2017-07-19 1 views
0

Nous avons une application qui a deux types d'utilisateurs. L'un d'entre eux est un administrateur et l'autre est un client. Nous utilisons l'identité AspNet pour authentifier l'utilisateur et émettre un cookie. Cependant, il existe un scénario dans lequel l'administrateur et l'utilisateur partagent le même navigateur. Lorsque le client se connecte, le cookie est remplacé et lorsque vous revenez sur les pages de l'administrateur, nous perdons l'authentification. La même chose se passe dans l'autre sens (le client est connecté en premier, puis admin). Existe-t-il un moyen de prendre en charge plusieurs utilisateurs authentifiés en même temps sur le même navigateur? Salutations. Luis.Plusieurs utilisateurs même identité d'un navigateur

+0

'prendre en charge plusieurs utilisateurs authentifiés en même temps sur le même navigateur' Essayez-vous d'implémenter l'usurpation d'identité? – Win

+0

pas vraiment, je veux juste deux utilisateurs simultaneus sur la même application –

+0

Nope, pas possible. Pas dans l'identité, pas dans toute autre application web. Vous admin ou utilisateur. Vous devez vous déconnecter avant de devenir l'autre utilisateur. Si vous avez les deux en même temps, comment l'application sait-elle quel utilisateur utilise le système? – trailmax

Répondre

0

Non, le navigateur ne comprend pas les utilisateurs. Vous définissez des cookies et le navigateur renvoie ces cookies. L'application reçoit ensuite et vérifie ces cookies pour comprendre l'utilisateur actuel sur la prochaine requête;

Le navigateur n'a aucun moyen de savoir quels cookies il doit renvoyer et votre serveur n'a aucun moyen de savoir quel est le bon utilisateur autre que de lire ces cookies. Pourquoi voulez-vous que 2 types d'utilisateurs différents partagent la même fenêtre de navigateur exacte de toute façon? Cela défait l'ensemble du modèle de sécurité.

Si 2 personnes doivent partager le même périphérique, la plupart des navigateurs prennent désormais en charge les fenêtres privées ou les 'profils' distincts, ce qui vous permet d'avoir des préférences et des sessions complètement distinctes sans partager de données. Voici un lien vers la fonctionnalité de profils de Chrome: https://support.google.com/chrome/answer/2364824

+0

J'ai réussi à créer un cookie séparé pour chaque utilisateur de l'application. Je ne veux pas vraiment que mon navigateur décide du cookie à envoyer, mais permette à l'application de décider quel cookie convertir en utilisateur authentifié. Pouvons-nous en quelque sorte intercepter le processus de conversion des cookies en identité sur l'identité de l'ASP? –

+2

Cela ne semble pas correct. Vous ne devriez pas créer de cookies séparés pour chaque utilisateur, il devrait y avoir un seul nom de cookie utilisé et la valeur (qui est chiffrée) contient l'identifiant de l'utilisateur et toute autre information mise en cache comme les rôles et les revendications. '' ASP.NET Identity' fait tout automatiquement, ou vous pouvez utiliser 'Cookie Authentication' comme une API de bas niveau qui ne gère que les cookies et vous devez ajouter vous-même la structure de validation, de rôles et de revendications des mots de passe. Comment l'application peut-elle savoir si c'est "l'utilisateur" ou "l'administrateur" qui regarde la page? –

+0

Dans mon application, les routes ne peuvent être utilisées que par un type d'utilisateur. Par conséquent, mon idée est que dans le cas où les deux cookies sont présents sur la demande, identifier l'itinéraire qui a été appelé et basé sur celui qui décide quel utilisateur sera utilisé. –