12
votes

Authentification via web.config non authentifiant dans ASP.NET 3.5

C'est l'une de ces choses qui devraient être extrêmement simples et je ne peux tout simplement pas savoir pourquoi cela ne fonctionne pas.

J'essaie de configurer une authentification très rapide pour une application ASP.NET 3.5 mais stocker Les noms d'utilisateur et les mots de passe du fichier web.config (je sais que ce n'est pas très sécurisé mais c'est une application interne que je continue à demander d'ajouter et de supprimer des connexions pour que c'est le moyen le plus rapide de le faire).

Donc, la section de configuration correspondante ressemble à ceci: xxx

et, dans la page de connexion, le code ressemble à ceci: xxx

mais, formesAuthentication.Authenticate (nom d'utilisateur, mot de passe) retourne toujours faux. Et je ne peux pas comprendre pourquoi.

J'ai même essayé d'utiliser des membres.ValidateUser, mais cela ajoute simplement dans une base de données locale au dossier App_Data.

Y a-t-il quelque chose de vraiment basique que je ' m oubliant ici ou cela ne fonctionne pas du tout à .NET 3.5?


0 commentaires

5 Réponses :


13
votes

Je ne sais pas si cela a changé dans .NET 3.5, mais le élément a un attribut PasswordFormat qui définit le format des mots de passe dans le < Code> web.config . De Documentation MSDN pour .NET 3.5 , le Le format par défaut est SHA1.

Si vous utilisez des noms d'utilisateur ClearText et des mots de passe de votre web.config , vous devez utiliser: xxx

événement Bien que ce soit une application interne, je recommanderais toujours au moins de hachage le mot de passe au lieu de la laisser dans un texte clair.


1 commentaires

Magie, c'était ça! Bon bit de front-rencontre-paume quand je lis ça. Incroyez ce que vous oubliez un vendredi après-midi. Merci beaucoup!



2
votes

Je pense que la raison est parce que vous n'avez pas indiqué le mot de passe. http://msdn.microsoft.com/en-us/library/e01fc50a. ASPX

La valeur par défaut est SHA1, d'où votre texte clair n'est pas utilisé correctement.


0 commentaires

2
votes

Vous devez spécifier Lorsque vous stockez le mot de passe en texte clair.

Les alternatives sont des mots de passe cryptés à l'aide de MD5 ou SHA1.

Voir http://msdn.microsoft.com /en-us/library/system.web.security.flsAuthentication.hashashashaspasswordSorSorceConfigfile.aspx Pour une fonction d'encode un mot de passe.

Vous pouvez également envisager d'utiliser certains des contrôles utilisateur disponibles qui Beaucoup pour vous automatiquement. Regardez sous la section "Login" de la boîte à outils de contrôle dans Visual Studio.

La page suivante fournira tout ce dont vous avez besoin pour ce cas simple et que les looks du contrôle de connexion sont entièrement personnalisables: xxx


0 commentaires

2
votes

Un autre piège possible qui est que le nom d'utilisateur "admin" semble être spécial et non honoré si votre test d'informations d'identification dans web.config xxx

Le problème ne semble pas Appliquez dans votre cas, mais je viens de passer une heure à comprendre que je pensais que je l'enregistrerais ici.


0 commentaires

-3
votes

Je trouve cette solution ........ Tout d'abord, vous devez obtenir HASHVALUE en utilisant FLUMINATHENTICICATION.HASHPASSWORDPORTORSORININGFILE ("ABC", "SHA1") dans la zone de texte en exécutant votre programme, puis fournissez cette valeur dans


0 commentaires