Dans l'application que je suis en train de développer, nous utilisons l'authentification par formulaires ASP.Net pour accorder à l'utilisateur un accès ultérieur au site. Ce site est destiné aux utilisateurs mobiles et, en tant que tel, nous essayons d'être aussi indépendants du serveur que possible et d'utiliser KnockoutJS pour appeler le service Web et charger les données afin que l'utilisateur puisse les voir.Transférer en toute sécurité UserID d'ASP.Net à Javascript
À l'heure actuelle, le service Web (service REST utilisant la méthode GET) requiert le nom d'utilisateur afin de charger les données spécifiques à cet utilisateur. J'ai cette information sur le côté serveur (ASP.net) et je peux facilement accéder à User.Identity.Name
ou accéder au cookie d'authentification de formes directement et tirer l'information.
Mon problème est que je dois obtenir le nom d'utilisateur du serveur au client afin que l'appel de service puisse être fait. J'ai cherché à le faire en toute sécurité, mais jusqu'à présent, je me suis trompé. Actuellement, je passe le nom d'utilisateur en tant que paramètre url et l'analyse en utilisant JavaScript, avec une vérification sur la méthode Page_Load
pour vérifier le nom d'utilisateur dans l'URL correspond à l'utilisateur connecté.
J'ai besoin d'un moyen de sécuriser passer un nom d'utilisateur à partir de ASP.Net qui a authentifié l'utilisateur en utilisant le formulaire pour le côté client JavaScript afin que je puisse faire un appel de service web REST.
EDIT: Donc, après googler et rencontre avec mon chef d'équipe, je pense nous allons utiliser une implémentation OAuth similaire à cet exemple:
http://www.c-sharpcorner.com/UploadFile/surya_bg2000/secure-wcf-restful-service-using-oauth/
Aussi pour quoi que ce soit à la recherche d'autre pour la même réponse que je a trouvé cette question très utile dans la compréhension OAuth:
What's the point of a timestamp in OAuth if a Nonce can only be used one time?
en supposant que tout est mise en œuvre édité correctement serait-il plus sécurisé (totalement sécurisé, sécurisé, ou plus dangereux?) pour passer la signature générée via une balise ASP comme mentionné ci-dessous?
EDIT 2: Après un peu plus d'examen et un peu plus de recherche, nous avons finalement décidé d'un cadre et d'une méthode pour faire ce travail. Il se trouve que OAuth est pas nécessairement la réponse ici, cette question:
But Seriously.... Example of ASP.NET WebAPI implementation including OAuth
était beaucoup d'aide et de trouver comment faire ce travail. Ce que nous allons finir par faire est de générer la signature et de mettre sur le javascript et faire l'appel comme ça. Les signatures vont être sensibles au temps et régénérées chaque fois que l'utilisateur charge la page de manière très OAuth mais nous ne sommes pas en train d'implémenter la spécification complète.
TL: DR solution finale était de générer une signature de hachage et de le mettre sur la page par tag serveur ASP <% aspvar_here%> et l'utiliser pour valider l'appel de service
Le service est-il sur le même serveur/domaine que le site sur lequel votre utilisateur est connecté? – nerdybeardo
Oui, ils vont tous les deux résider sur le même domaine – Pseudonym