2009-07-22 8 views
1

J'ai actuellement un ASP.NET 3.5 SP1 fonctionnant sur IIS 7. J'ai activé l'authentification par formulaire à l'aide de l'appartenance .NET et j'ai configuré certains dossiers restreints en fonction des rôles que j'ai créés. Par exemple, si un visiteur anonyme tente d'accéder au fichier http://www.example.com/restricted/foo.txt, il sera redirigé vers une page de connexion, comme prévu. Jusqu'ici tout va bien.Authentification de formulaires ASP.NET via Querystring

Ce que je voudrais faire est de fournir l'accès aux fichiers protégés en permettant aux visiteurs de spécifier leurs informations de connexion dans une chaîne de requête, quelque chose seul les lignes de:

http://www.example.com/foo.txt?user=username&pass=pwd

Est-ce possible?

Répondre

0

Vous devriez être capable d'écrire un module http qui intercepte la requête et authentifie l'utilisateur en fonction de la chaîne de requête. Cependant, juste pour être complet, je voudrais me demander si c'est une bonne idée de fournir aux utilisateurs leur nom d'utilisateur et (en particulier) leur mot de passe en clair.

+0

Merci pour la réponse rapide, Joel. Je n'ai jamais écrit un module http auparavant, mais je vais poursuivre cette route et vous laisser savoir comment cela fonctionne! –

+0

Incidemment, je pensais que quelqu'un soulèverait la question de la sécurité :-) Je n'ai pas vraiment l'intention de partager cette fonctionnalité avec la plupart des utilisateurs du site. L'objectif est simplement de permettre à un widget sur mon site d'accéder au fichier (il prend une URL en entrée), et le rôle d'utilisateur que je spécifie pour ce widget est très restrictif, donc aucune donnée cruciale n'est exposée. J'ai pensé que cela fournirait au moins un certain degré de sécurité aux fichiers utilisés par le widget, même si j'admets que ce n'est certainement pas infaillible. –

0

Vous pouvez facilement créer une page de téléchargement qui authentifierait l'utilisateur, puis les transmettrait au fichier demandé. Quelque chose comme naviguer vers Download.aspx? User = nom d'utilisateur & pass = pwd & file = foo.txt.

Ceci n'est cependant PAS recommandé. Vous ne devez jamais demander aux utilisateurs de transmettre des informations de connexion via une URL.

+0

Appréciez les commentaires, Dan! Voir mon commentaire ci-dessus concernant la sécurité. Mon vrai dilemme est que je dois passer une URL à laquelle mon widget peut accéder (il serait idéal de passer un chemin local, mais puisqu'il s'agit d'un widget tiers, il doit s'agir d'une URL web). –

0

Une réponse secondaire basée sur les commentaires que vous avez faits à d'autres questions est que vous pourriez simplement mettre votre page de téléchargement dans un répertoire. Le sous-dossier pourrait avoir un web.config qui permet aux utilisateurs non authentifiés d'accéder au contenu à l'intérieur :-)

quelque chose comme:

<configuration> 
    <system.web> 
     <authorization> 
     <allow users="*" /> 
     </authorization> 
    </system.web> 
</configuration> 
Questions connexes