Je cherche à authentifier un utilisateur à partir d'une application client tout en utilisant le API Web ASP.NET . J'ai regardé toutes les vidéos sur le site et j'ai également lu ce message du forum .
Mettre le [Authorize]
attribut correctement renvoie un 401 Unauthorized
statut. Cependant, j'ai besoin de savoir comment autoriser un utilisateur à se connecter à l'API.
Je souhaite fournir les informations d'identification de l'utilisateur d'une application Android à l'API, que l'utilisateur soit connecté, puis que tous les appels d'API ultérieurs soient pré-authentifiés.
android
.net
authentication
asp.net-web-api
Mujtaba Hassan
la source
la source
Réponses:
Vous devez envoyer un cookie d'authentification par formulaire valide avec la demande. Ce cookie est généralement envoyé par le serveur lors de l'authentification (
LogOn
action) en appelant la[FormsAuthentication.SetAuthCookie
méthode (voir MSDN ).Le client doit donc effectuer 2 étapes:
LogOn
action en envoyant le nom d'utilisateur et le mot de passe. À son tour, cette action appellera laFormsAuthentication.SetAuthCookie
méthode (au cas où les informations d'identification sont valides) qui à son tour définira le cookie d'authentification par formulaire dans la réponse.[Authorize]
action protégée en envoyant le cookie d'authentification par formulaire récupéré lors de la première requête.Prenons un exemple. Supposons que vous ayez 2 contrôleurs d'API définis dans votre application Web:
Le premier responsable de la gestion de l'authentification:
et le second contenant des actions protégées que seuls les utilisateurs autorisés peuvent voir:
Nous pourrions maintenant écrire une application cliente utilisant cette API. Voici un exemple d'application console trivial (assurez-vous d'avoir installé les packages
Microsoft.AspNet.WebApi.Client
etMicrosoft.Net.Http
NuGet):Et voici à quoi ressemblent les 2 requêtes HTTP sur le fil:
Demande d'authentification:
Réponse d'authentification:
Demande de données protégées:
Réponse pour les données protégées:
la source
Je prends Android comme exemple.
Attention : i.localhost ne peut pas être utilisé. L'appareil Android regarde l'hôte local comme lui-même hôte. ii.Si vous déployez l'API Web dans IIS, l'authentification par formulaire doit être ouverte.
la source
Utilisez ce code et accédez à la base de données
la source