comment authentifier l'utilisateur de ASP.NET web service qui fait partie de ASP.NET application web?
J'ai un C# ASP.NET 3.5 application web qui utilise l'authentification par formulaires. Les utilisateurs de se connecter avec leur nom d'utilisateur et le mot de passe de connexion.aspx, sont authenicated à l'aide d'une authentification personnalisée logique et sont ensuite dirigés vers l'entrée.aspx, où ils entrer certains paramètres et d'obtenir la réponse sur la production.aspx. Si ils essaient d'accéder à l'entrée.aspx sans avoir à s'authentifier eux-mêmes, ils sont redirigés vers la connexion.aspx.
Les mêmes utilisateurs veulent être en mesure d'utiliser les fonctionnalités de cette application web sans l'aide de l'INTERFACE utilisateur, de l'environnement Unix. J'ai donc ajouté un fichier de service web (.asmx) à cette application web. Je n'ai pas de créer un projet distinct pour ce service web, parce que le service web utilise des fichiers de code, le code mondial.asax de l'application web existante et je dois pas de duplication de code pour le service web.
Le service web de la fonctionnalité fonctionne très bien maintenant, mais je ne sais pas comment faire pour authentifier les utilisateurs. Le client de service web envoyer le nom d'utilisateur et le mot de passe une fois (peut-être l'aide d'un 'login' webmethod, que je peux écrire pour les authentifier), puis devrait être en mesure d'envoyer plusieurs demandes (peut-être jusqu'à ce qu'ils appellent une "déconnexion" webmethod ou jusqu'à ce que leur session/cookies expirent).
Pour les requêtes web pour ne pas obtenir redirigé vers la de login.page aspx, j'ai exclu la .asmx fichier à partir de l'authentification de Formulaires à l'aide de l'emplacement de la balise dans le web.config. (Je ne sais pas si c'est la voie à suivre.) Mais ensuite, je pense que l'utilisateur n'est pas authentifié dans l'application web, et ainsi le code de l'application web qui utilise le service, ne sera pas accessible, non?
OriginalL'auteur engg | 2010-01-21
Vous devez vous connecter pour publier un commentaire.
Je recommande une lecture rapide sur ce lien (http://msdn.microsoft.com/en-us/library/ms977327.aspx) et puis suivi de celui-ci (http://msdn.microsoft.com/en-us/library/9z52by6a(SV.80).aspx). De sécurité personnalisé en-tête est probablement là où vous voulez aller pour la sécurité de votre service web à l'extérieur de l'authentification par formulaires. Cela signifie que chaque appel de la méthode doit avoir l'en-tête fourni.
C'est ce que l'en-tête SOAP peut accomplir. Les informations d'identification embarqué dans il peut être le même. Ils ont juste à être transmis/joint pour chaque demande.
Ok Merci, donc si l'utilisateur les informations d'identification sont transmises dans des en-têtes SOAP dans un site web demande, la demande de ne pas être redirigé vers la de login.page aspx?
Non, si vous l'excluez FormsAuthentication comme vous l'avez mentionné, puis l'en-tête SOAP devraient être traitées de façon indépendante. Cependant, comme vous pourrez le lire, la source d'authentification peut être le même mécanisme.
Ok merci, donc le code de pratique mondial.asax, .cs fichiers et les données dans le cache ensembles de données de l'application web sera disponible pour le service web? J'ai été lire: code-magazine.com/... le Journal-dans la méthode de cet article suffit-il? Le client doit transmettre les informations d'identification de connexion, juste une fois, si.
OriginalL'auteur Joel Etherton