2016-08-08 3 views
0

Ich versuche, eine VS2010-Website in eine VS2015-Webanwendung (C#) zu konvertieren. Das letzte Problem, das ich habe, ist, dass VS2015 SHA1 oder HMACSHA256,384,512 benötigt. Dies ist eine alte Seite, und sie hat sich an 3DES gewöhnt. Es verwendet die .NET 2.0-Mitgliedschaft mit verschlüsselten Kennwörtern. Ich habe etwas gelesen, das besagt, dass die .NET-Mitgliedschaft die Verschlüsselung mit dem Computerschlüssel verwendet, wenn sie Kennwörter verschlüsselt hat. Ich weiß, dass ich zu Hash Passwords wechseln muss, und das ist auf der Liste der Aufgaben zu tun.Passwörter funktionieren nicht, nachdem der Maschinenschlüssel für die VS2015-Aktualisierung geändert werden muss

When using <machineKey compatibilityMode="Framework45" /> or the MachineKey.Protect and 
MachineKey.Unprotect APIs, the 'validation' attribute must be one of these values: 
SHA1, HMACSHA256, HMACSHA384, HMACSHA512, or alg:[KeyedHashAlgorithm] 

Das Problem ist, dass ich nicht einloggen kann, nachdem sich das geändert hat. Ich gehe davon aus, dass die Validierung einen anderen Algorithmus verwendet und daher keine Übereinstimmung gefunden wird.

Gibt es trotzdem die Validierung zu behalten, ohne jedes Passwort entschlüsseln und dann hashen oder neu verschlüsseln zu müssen? Oder sollte ich einfach alle Passwörter in Hashes konvertieren, um dies zu vermeiden? Oder gibt es eine andere Option?

Antwort

1

Ok. Es stellt sich heraus, dass es einen Kompatibilitätsmodus gibt, der zu funktionieren scheint und mir erlaubt, die Verschlüsselung nicht zu ändern. Alles, was Sie tun müssen, ist compatibilityMode = „Framework20SP2“ der machineKey in der web.config wie folgt hinzufügen:

<machineKey compatibilityMode="Framework20SP2" validationKey="..." 
    decryptionKey="..." validation="3DES" /> 

hoffe, das hilft jemand anderes, das in diese läuft.

Verwandte Themen