2016-07-28 9 views
2

Wir haben die Web-API erstellt, die wiedie Verbindungszeichenfolge Encrypting

using (OracleConnection dbconn = new OracleConnection("DATA SOURCE=J;PASSWORD=CM;PERSIST SECURITY INFO=True;USER ID=TR")) 

eine Verbindung mit der Oracle-Datenbank erstellt aber wollen es verschlüsselt, wenn wir in der IIS veröffentlichen. Tun wir sie in der Datei web.config. Im Internet. config nach dem Veröffentlichen im Dateisystem von VS, sehe ich nur den folgenden Code. Muss ich eine neue Verbindungszeichenfolge als dbconn erstellen, die ich im Controller-Code angegeben habe.

<oracle.manageddataaccess.client> 
<version number="*"> 
    <dataSources> 
    <dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " /> 
    </dataSources> 
</version> 
</oracle.manageddataaccess.client> 
<connectionStrings> 
<add name="OracleDbContext" providerName="Oracle.ManagedDataAccess.Client" connectionString="User Id=oracle_user;Password=oracle_user_password;Data Source=oracle" /> 
</connectionStrings> 

Erstellen der Anwendung zum ersten Mal. Jede Hilfe wird sehr geschätzt.

+0

Ich verstehe nicht, was Sie mit "wir wollen es verschlüsselt" ... Was wollen Sie verschlüsselt, Ihre API? Es sieht so aus, als ob Sie eine Verbindung zu localhost für Ihre DB-Verbindung hergestellt haben. Es gibt nichts zu verschlüsseln, wenn Sie sich mit localhost verbinden, wenn Sie das meinen. – mituw16

+0

anstatt den Benutzernamen und das Passwort direkt in der web.config-Datei anzugeben, um sie zu sichern. Muss ich auch eine neue Verbindungszeichenfolge in die veröffentlichte Datei web.config einfügen? – trx

+0

Es ist ein allgemeines Passwort, um Benutzernamen/Passwort im Klartext in Ihrer web.config zu speichern (Sie könnten es verschlüsseln, aber Sie würden nicht viel gewinnen). Was Sie wirklich tun sollten, anstatt sich darum zu kümmern, etwas in Ihrer web.config zu verschlüsseln, stellt sicher, dass Ihr Server gehärtet ist und auch Ihre Webapp über einen Benutzer mit der geringsten Berechtigung verbindet – mituw16

Antwort

5

Es ist üblich, Verbindungszeichenfolgen und viele andere Abschnitte von web.config zu verschlüsseln. Die Standardmethode hierfür ist die Verwendung des Tools Aspnet_regiis.exe, das sich unter %windows%\Microsoft.NET\Framework\<versionNumber> befindet. Es ist einfach zu machen. Here is a tutorial.

+0

Ich verstehe den Verschlüsselungsteil. Ich werde die Verbindungszeichenfolge, die die web.config ist, verschlüsseln. Aspnet_regiis -pe "connectionStrings" -app "/ SampleApplication" -prov "RsaProtectedConfigurationProvider". Und verwenden Sie die Verbindungszeichenfolge in der Anwendung. wo genau werde ich sie entschlüsseln. – trx

+0

@trx Die Entschlüsselung wird automatisch von .net durchgeführt. In Ihrer Anwendung wird eine entschlüsselte Verbindungszeichenfolge angezeigt. Bei der Bereitstellung in einer [Webfarm] (https://msdn.microsoft) müssen einige zusätzliche Schritte ausgeführt werden.com/de-de/library/ms998283.aspx # paght000006_webfarmscenarios). Sie müssen die Verbindungszeichenfolge nur dann entschlüsseln, wenn Sie die Konfiguration bearbeiten (z. B. geänderter Speicherort des Datenbankservers, geänderte Benutzeranmeldeinformationen usw.). Im oben erwähnten Link gibt es einen Leitfaden, wie man das macht. – pepo

+0

Ich bekomme immer den Fehler, dass die Konfigurationsdatei für das angeforderte Konfigurationsobjekt nicht erstellt werden kann.Fehl! – trx