Pourrais-je avoir le mot de passe décrypté dans la composition de la base de données?
<add name="LDSAMembers"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName=""
applicationName=""
requiresUniqueEmail="true"
passwordFormat="Encrypted"
minRequiredPasswordLength="6"
enablePasswordReset="true"
enablePasswordRetrieval="true"
maxInvalidPasswordAttempts="5"
passwordAttemptWindow="15"
requiresQuestionAndAnswer="false"
minRequiredNonalphanumericCharacters="0" />
j'ai besoin déchiffré le mot de passe de connexion dans le système.j'ai trouver le mot de passe et passwordsalt champ dans la base de données
- Vous ne pouvez pas le faire par le biais de la base de données, vous devez le faire par le biais de la .NETTE de l'effectif de l'API. Êtes-vous réellement en cours d'exécution dans le code source ou juste essayer d'obtenir le mot de passe dans une "boîte noire" de la sorte?
Vous devez vous connecter pour publier un commentaire.
J'ai utilisé la configuration ci-dessus dans un scénario où il était appropriée (c'est à dire passwordFormat="Crypté"). Le code suivant a été utilisé pour réinitialiser le mot de passe par un nouveau mot de passe (comme oppposed la génération d'un nouveau mot de passe), de sorte que le représentant peut demander à l'utilisateur un nouveau mot de passe alors que sur le téléphone et de le changer pour eux, sans connaître l'ancien mot de passe.
Un appel à l'utilisateur.ChangePassword nécessite le mot de passe actuel pour être adoptée:
de l'utilisateur.Mot de passe() renvoie le mot de passe en texte clair.
Je vois que vous avez
enablePasswordReset="true"
, afin d'utiliser la voie normale.Pas. C'est par la conception.
En supposant que vous avez une véritable chaîne de connexion configuré (et pas
connectionStringName=""
comme dans votre exemple), vous pouvez simplement utiliser dans votre codeIl y a beaucoup d'exceptions qui peuvent être levées par cette méthode, par exemple si le mot de passe, la réponse est en fait défini, ou si l'utilisateur est verrouillé. Voir ici pour plus de détails:
http://msdn.microsoft.com/en-us/library/system.web.security.sqlmembershipprovider.getpassword.aspx
Généralement de tels systèmes sont conçus en utilisant un cryptage à sens unique pour éviter exactement ce que vous essayez de faire. Si vous travaillez sur le système, il est préférable de créer votre propre compte plutôt que d'utiliser de quelqu'un d'autre.
Vous aurez besoin du mot de passe crypté, le sel et le
machineKey
section de la machine qui crypté le mot de passe.Cette section DOIT être défini, qui n'est pas, par défaut, à prendre en charge le chiffrement. Donc, sauf si vous travaillez sur le serveur qui a chiffré les données, vous devez obtenir les clés de cette machine.
Ils peuvent être définis entre le web.config de l'application tout le chemin jusqu'à la racine web.config c:\windows\microsoft.net
Donc - il y a la clé, pour ainsi dire.
Si vous avez accès à cette section, NE PAS le POSTER ICI, mais ne laissez-moi un commentaire, et nous pouvons parler de décryptage.