2015-11-13 7 views
20

Ich benutze MachineKey API, um eine Information in einer ASP.NET-Anwendung zu verschlüsseln/entschlüsseln. Ich bin mitMachine Key ändert sich, wenn App-Pool recycelt wird

MachineKey.Encode(data, MachineKeyProtection.All)

und

MachineKey.Decode(data, MachineKeyProtection.All)

Methoden der API. Alles funktioniert gut unter Windows 8 und Windows Server 2012, wenn Benutzerprofil laden aktiviert ist. Das Problem besteht aus irgendeinem Grund nicht App-Pool-Neustart auf Windows Server 2008 R2 with IIS 7.5.

Anfangs hatte ich Eindruck, dass ich brauchen laden Benutzerprofil Einstellung auf Application Pool zu ermöglichen, aber das macht keinen Unterschied machen. Irgendeine Idee, was ich hier vermissen könnte?

Dank

Antwort

12

Es könnte sein, dass eine neue Maschine, um die Anwendung Pool rezykliert von IIS jedes Mal erzeugt wird. Versuchen Sie, einen statischen Computerschlüssel in Ihrer web.config wie hier beschrieben zu setzen: IIS 7 Tip #10 You can generate machine keys from the IIS manager. Ohne explizit einen statischen Maschinenschlüssel festzulegen, ist Ihr Verschlüsselungs-/Entschlüsselungsschlüssel ein bewegliches Ziel.

+1

Eigentlich war die Idee, MachineKey API zu verwenden, DPAPI zu ersetzen und ohne sich Gedanken über das manuelle Festlegen des Maschinenschlüssels zu machen. Der statische Maschinenschlüssel funktioniert, ist aber keine Option, da die API funktionieren sollte, ohne dass ein eindeutiger Schlüssel pro IIS-Einstellungen gewährleistet ist. – Leadfoot

4

@pstricker ist richtig, wenn kein Maschinenschlüssel definiert ist, wird beim Start des App-Pools ein neuer Schlüssel generiert. Die MachineKey-API basiert auf dem Maschinenschlüssel und muss daher irgendwo eingestellt werden. Wenn Sie den ComputerKey nicht in der Webkonfiguration der Anwendung festlegen möchten, können Sie dies weiterhin in der Serverkonfiguration des Servers tun: "C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config" "

Wenn Sie einen Poolschlüssel pro App-Pool möchten, können Sie auch das tun, was beschrieben wird here.

Verwandte Themen