Implementieren eines geschützten Konfigurationsanbieters
Aktualisiert: November 2007
Mit der geschützten Konfiguration können Sie Abschnitte der Datei Web.config einer ASP.NET-Anwendung verschlüsseln, um die vertraulichen Informationen der Anwendung zu schützen. Auf diese Weise kann die Sicherheit der Anwendung verbessert werden, da ein Angreifer selbst dann noch Probleme beim Zugriff auf vertrauliche Informationen hat, wenn er sich bereits Zugriff zur Datei Web.config verschafft hat. In ASP.NET gibt es zwei geschützte Konfigurationsanbieter zum Verschlüsseln von Abschnitten der Datei Web.config: der RsaProtectedConfigurationProvider, der den RSACryptoServiceProvider zum Verschlüsseln von Konfigurationsabschnitten verwendet, und der DpapiProtectedConfigurationProvider, der die Windows Data Protection API (DPAPI) zum Verschlüsseln der Konfigurationsabschnitte verwendet.
In einigen Fällen kann es notwendig sein, dass Sie die Informationen mit einem Algorithmus verschlüsseln müssen, der nicht gemeinsam mit den Anbietern RSA und DPAPI verfügbar ist. In diesem Fall können Sie einen benutzerdefinierten geschützten Konfigurationsanbieter erstellen, der von ASP.NET verwendet wird.
Erforderliche Klassen für geschützte Konfigurationsanbieter
Erstellen Sie zum Implementieren eines geschützten Konfigurationsanbieters eine Klasse, die von der abstrakten ProtectedConfigurationProvider-Klasse aus dem System.Configuration-Namespace erbt. Die abstrakte ProtectedConfigurationProvider-Klasse erbt von der abstrakten ProviderBase-Klasse aus dem System.Configuration.Provider-Namespace. Folglich müssen Sie auch die erforderlichen Member der ProviderBase-Klasse implementieren. In den folgenden Tabellen werden diejenigen Eigenschaften und Methoden aufgeführt, die Sie von der abstrakten ProviderBase und der abstrakten ProtectedConfigurationProvider-Klassen implementieren müssen. Eine Implementierung aller Member finden Sie unter Gewusst wie: Erstellen und Ausführen des Beispiels für einen geschützten Konfigurationsanbieter.
Erforderliche ProviderBase-Member
Member |
Beschreibung |
---|---|
Initialize-Methode |
Legt Eigenschaftenwerte für die Anbieterinstanz fest, einschließlich implementierungsspezifischer Werte und Optionen, die in der Anwendungskonfiguration bereitgestellt werden. Als Eingabe wird der Name des Anbieters und eine NameValueCollection mit Konfigurationseinstellungen verwendet. |
Erforderliche ProtectedConfigurationProvider-Member
Member |
Beschreibung |
---|---|
Encrypt-Methode |
Führt die Verschlüsselung durch. Als Eingabe wird ein XmlNode-Objekt verwendet, das den zu verschlüsselnden Konfigurationsabschnitt enthält. Wenn z. B. der Konfigurationsabschnitt connectionStrings verschlüsselt werden soll, dann stellt das XmlNode-Objekt die XML-Daten ähnlich wie im folgenden Beispiel dar.
Die Encrypt-Methode verschlüsselt den OuterXml-Wert des XmlNode-Objekts und gibt ein XmlNode-Objekt mit einem EncryptedData-Element als Stammelement zurück:
Das Format des Inhalts des EncryptedData-Elements hängt von der Implementierung ab. Beim Entschlüsseln des Elements übergibt ASP.NET ein XmlNode-Objekt mit dem EncryptedData-Element als Stammelement an die Decrypt-Methode. |
Decrypt-Methode |
Führt die Entschlüsselung durch. Nimmt ein XmlNode-Objekt als Eingabe, das das EncryptedData-Element eines verschlüsselten Konfigurationsabschnitts enthält. Wenn es sich bei dem verschlüsselten Konfigurationsabschnitt z. B. um den Abschnitt connectionStrings handelt, dann stellt das XmlNode-Objekt die XML-Daten ähnlich wie im folgenden Beispiel dar.
Die Decrypt-Methode entschlüsselt den Inhalt des XmlNode-Objekts und gibt ein XmlNode-Objekt zurück, das den entschlüsselten Inhalt des EncryptedDataXmlNode-Objekts darstellt. Wenn z. B. der connectionStrings-Abschnitt verschlüsselt wurde, gibt die Decrypt-Methode ein XmlNode-Objekt mit XML-Daten ähnlich wie im folgenden Beispiel zurück.
|
Beispiel für einen Anbieter
Ein Beispiel für einen benutzerdefinierten geschützten Konfigurationsanbieter, der zum Verschlüsseln und Entschlüsseln von Abschnitten der Datei Web.config die TripleDESCryptoServiceProvider-Klasse verwendet, finden Sie unter Gewusst wie: Erstellen und Ausführen des Beispiels für einen geschützten Konfigurationsanbieter.
Siehe auch
Aufgaben
Gewusst wie: Erstellen und Ausführen des Beispiels für einen geschützten Konfigurationsanbieter
Weitere Ressourcen
Verschlüsseln von Konfigurationsinformationen mithilfe der geschützten Konfiguration