Certaines des modèles d'application à la page unique (SPA) dans VS2012 MVC4 ont une authentification intégrée. Modèle de spa Hotteowel ne le fait pas. p>
Quel est le moyen approprié de mettre en œuvre l'authentification de l'utilisateur (écran de connexion) dans SPA HotTowel? Hotteowel utilise Durandalal JS, donc je suppose que la question est vraiment comment implémenter l'authentification de l'utilisateur avec Durandal JS P>
3 Réponses :
ressemble à la Durandal JS Google Group a des réponses mais pas un code d'échantillon concret. P>
Authentification avec Durandal < / p>
Vous souhaitez ajouter une authentification à l'échantillon SPA , mais gardez-le un spa p>
Idées Mauro Servienti: P>
Mon backend expose un service (Webapi dans mon cas) où il y a une opération GetCurrentUser. P>
Alors, dans mon Main.Js, dans l'app.start (), puis rappelez avant d'appeler app.setroot i Émettez un appel The Backend Demander, Async, pour l'utilisateur si le résultat est un utilisateur valide, je définit la racine à Le shell d'application principale sinon j'ai défini la racine sur la coque de connexion. P>
Quel est le problème? Du point de vue côté client, l'authentification est juste un "drapeau" qui dit: OK, je sais qui vous êtes. Vous pouvez tirer parti de la puissance des formulaires et de vivre avec cela, puis exposez une action WebAPI Obtenir une action qui vous permet de récupérer des informations sur l'utilisateur actuellement enregistré. P>
Comme John Papa dirait, HotTowel est juste un modèle :). En fait, dans son deuxième parcours sur le spa à Pluralsight, il crée l'application à partir de zéro. p>
ne suffirait pas à démarrer votre application à partir d'un modèle spa, puis à ajouter le reste des bibliothèques Hotteowel a (Durandal, Breeze, etc.)? p>
Vous pouvez voir la comparaison ici ASP.NET SPA Modèles p>
J'ai créé un modèle de démarreur avec authentification et autorisation incluses p>
Peut-être pourrait peut-être aider ... p>
github => https://github.com/yagopv/durandalauth p>
échantillon Site => https://durandalauth.azurewebsites.net/ p>
Dans votre application Durandalauth, comment avez-vous réussi à sauvegarder JSON Web Jetken? Est-ce qu'il utilise des sessions asp.net ou un cookie côté client?
Il utilise le stockage local ou de session. Si vous jetez un coup d'œil à Github.com/ Yagopv / Durandalauth / Blob / Master / Durandalauth.Web / ... , vous pouvez voir les détails. Les fonctions suivantes veillent à la gestion du stockage local [Getsecurityheaders (), SetAccessToken (AccessToken, persistant), ClearAccessToken ()]. Vous devez inclure les en-têtes de chaque demande Ajax à l'aide de Getsecurityheers (). Au revoir!!
Regardez-vous sur vos affaires, souhaitez-vous un utilisateur et un mot de passe codé dur pour votre base de données dans web.config? De plus, vous voudrez peut-être inclure les scripts de création de base de données afin que nous puissions courir sur notre propre base de données :) Nice trucs jusqu'à présent sinon.
Ignorer mon dernier bit sur les scripts de base de données, vient de trouver les migrations d'entité.
Quel type d'authentification que vous recherchez?
Aussi simple que possible. Il suffit d'authentifier les utilisateurs contre les noms d'utilisateur et les mots de passe enregistrés de base de données. Après une connexion réussie, le spa va charger.
Je pensais aussi à la sécurité. L'utilisation de [validateantuforgerytoken] avec le contrôleur Breeze.js, mais cela fait partie d'une autre question.
Je voudrais simplement utiliser l'authentification de base alors. ASP.NET/WEB-API/Overview/security/basic-authentification < / a>