/ / Session web api Asp.net - javascript, angularjs, html5, asp.net-web-api

Asp.net web api Session - javascript, angularjs, html5, asp.net-web-api

Je ne reçois pas le concept web api et session.

J'ai créé le projet d'api web asp.net et y ai intégré des angularjs. Chaque fois que je vais appeler l'api web.

J'ai lu les articles qui déclarent que sa session n'est pas bonne à utiliser dans l'API Web. Je comprends que l'API Web est une approche sans état. Je suis d'accord. jusqu'à ce qu'il existe un moyen d'utiliser la session.

Première question: si, après la connexion, je veux afficher le nom d'utilisateur sur chaque page, que dois-je faire avec l'approche web api ????

deuxième question: ils disent de ne pas utiliser la session dans webapi. alors quelle est l'autre façon / approche de stocker les informations client en toute sécurité.

Si j'utilise le stockage local HTML5, il peut être modifiable. Si un cookie est utilisé, il peut être supprimé.

Que dois-je faire et comment le faire pour l'utilisateur jusqu'à ce que l'application soit en mode exécution?

Réponses:

2 pour la réponse № 1

C'est là que la sémantique assombrit souvent la discussion. Les gens confondent l'objet Session avec l'apatridie. Et dites souvent: "n'utilisez pas la session car elle n'est pas" sans état! ".

Cependant, ils signifient vraiment que vous devez vous efforcer d'avoir vos appels reposants pour être idempotents, ce qui signifie qu'ils ne changent pas leur comportement en fonction de ce que vous faites en arrière-plan.

Session, ou runtime-cache, ou quoi que ce soitque vous utilisez pour mettre en cache des données, n'a aucun effet sur votre conception sans état, car vraiment, quelle est la prochaine étape? Votre base de données est également très complète? Un non-sens évidemment; votre stockage sous-jacent, s'il est en mémoire ou sur disque n'a aucune réflexion sur votre état pour le client.

Bien que je pense que @MajoB fait d'autres points validesde ne pas utiliser l'objet session, il n'y a vraiment aucun mal à utiliser une sorte de cache dans l'api web, la session ou autre chose. Mais ne laissez jamais le fait si quelque chose est EN session retourner un résultat différent que lorsque quelque chose est HORS session.


1 pour la réponse № 2

Je vous recommanderais d'éviter d'asp.session car cela peut entraîner des problèmes de performances et peut expirer à tout moment quel que soit l'état de votre application, ne s'adapte pas au cloud, il bloquera les requêtes ajax simultanées). Une meilleure approche serait d'utiliser le mécanisme de stockage HTML 5 en particulier en conjonction avec AngularJs (vous pouvez utiliser ng-storage https://github.com/gsklee/ngStorage).


0 pour la réponse № 3

Je vous recommande d'utiliser l'identité asp.net et de rendre les informations utilisateur sur le serveur.