Heim Backend-Entwicklung C#.Net-Tutorial Teilen Sie ein Beispiel dafür, wie ASP.NET Core Geheimnisse (Benutzergeheimnisse) in der Entwicklungsumgebung speichert

Teilen Sie ein Beispiel dafür, wie ASP.NET Core Geheimnisse (Benutzergeheimnisse) in der Entwicklungsumgebung speichert

May 27, 2017 am 10:35 AM
asp.net core user

Dieser Artikel stellt hauptsächlich detailliert vor, wie ASP.NET Core vertrauliche Benutzergeheimnisse in der Entwicklungsumgebung speichert. Er hat einen gewissen Referenzwert.

Vorwort

Im Prozess der Anwendungsentwicklung ist es manchmal notwendig, einige vertrauliche Informationen im Code zu speichern, wie z. B. Verschlüsselungsschlüssel, Zeichenfolgen oder Benutzernamen, Passwörter usw. Der übliche Ansatz besteht darin, es in einer Konfigurationsdatei zu speichern. In der Vergangenheit haben wir es in web.config gespeichert, aber in ASP.NET Core hat sich diese Methode möglicherweise geändert, oder Sie verfügen über vielfältigere Methoden und elegantere Konfigurationen zum Festlegen oder Speichern dieser vertraulichen Informationen.

Zuerst dachte ich, dass dieses UserSecrets nutzlos sei, denn wenn ich etwas konfigurieren müsste, könnte ich es direkt in der Datei appsetting.json konfigurieren Als Entwicklungsprozess spürte ich seinen wahren Nutzen.

Verzeichnis

  • Einführung in Benutzergeheimnisse

  • So fügen Sie Benutzergeheimnisse hinzu

  • Verwendung von Benutzergeheimnissen in Anwendungen

  • Zusammenfassung

Einführung in Benutzergeheimnisse

Sie können darüber nachdenken, wie wir die folgenden Szenarien im vorherigen Code gehandhabt haben:

  • Sie müssen einige Schlüssel für die Verbindung mit Websites von Drittanbietern speichern, z. B. The appkey, der von WeChat- und Weibo-Sites verwendet wird

  • konfiguriert unterschiedliche Benutzernamen und Passwörter für jeden Entwickler, um auf einige Ressourcen zuzugreifen

  • Entwickler Verwenden Sie während des Entwicklungsprozesses Ihre eigene lokale Datenbank. Wie konfiguriere ich die Datenbankadresse, das Konto und das Passwort? Lassen Sie jeden seine eigene web.config ändern, übermitteln Sie sie jedoch nicht, wenn Sie den Code übermitteln. Wenn Sie also weitere Konfigurationselemente zu web.config hinzufügen, ist es offensichtlich unvernünftig, die Datei web.config nicht einzureichen.

    Jetzt bietet ASP.NET Core eine sehr elegante und prägnante Möglichkeit, mit User Secrets dieses Problem zu lösen.
Wenn Sie eine neue ASP.NET Core-Webanwendung erstellen, sehen Sie diesen Code in der Datei

Startup.cs

:

in Projekt .json In der Datei sehen Sie einige Konfigurationen im Zusammenhang mit Benutzergeheimnissen

public Startup(IHostingEnvironment env) 
{
  .....

  if (env.IsDevelopment())
  {
    builder.AddUserSecrets();
  }
  
  builder.AddEnvironmentVariables();
}
Nach dem Login kopieren

Sie können die Codezeile builder.AddUserSecrets sehen, die sich in der Entwicklungsumgebung befindet läuft.

{
  "userSecretsId": "aspnet-WebAppCore-e278c40f-15bd-4c19-9662-541514f02f3e"
  ...
  
  "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
  "Microsoft.Extensions.SecretManager.Tools": “1.0.0-preview2-final”
}
Nach dem Login kopieren

userSecretsId wird verwendet, um die Benutzergeheimnisse des Projekts eindeutig zu identifizieren. Wenn es zwei Projekte gibt, die unterschiedliche Geheimnisse verwenden müssen, müssen sie unterschiedliche userSecretsId haben.

Microsoft.Extensions.SecretManager.Tools Wird hauptsächlich zum Festlegen oder Anzeigen des Werts von Geheimnissen verwendet.

So fügen Sie Benutzergeheimnisse hinzu

Sie können den Befehl in der Befehlszeile verwenden, um Folgendes hinzuzufügen:

Bild


Wechseln Sie das Befehlszeilenfenster in das laufende Verzeichnis des Programms und geben Sie

dotnet user-secrets -h

ein, um die Befehle anzuzeigen, die verwendet werden können
  • Verwenden Sie dotnet user-secrets list

    Alle Benutzergeheimnisse auflisten
  • Verwenden Sie dotnet user-secrets set WeChatAppKey „X3423FEED2435DD“

    , um eine festzulegen Benutzergeheimnis, wobei WebChatAppKey der Schlüssel ist, gefolgt vom Wert.
  • Verwenden Sie dann Dotnet-Benutzergeheimnisliste

    , um die festgelegten Schlüssel-Wert-Paare anzuzeigen.
  • Dann habe ich eine Datenbankverbindungszeichenfolge eingerichtet.

  • Das Obige dient der Verwendung der Befehlszeile zum Festlegen von Benutzergeheimnissen. Sie können für diese Arbeit auch Visual Studio 2015 anstelle der Befehlszeile verwenden.

    Klicken Sie in Visual Studio mit der rechten Maustaste auf das Webprojekt. Sie können ein Menü mit
  • Benutzergeheimnisse verwalten
sehen:

Bild
Wenn Sie zum Öffnen klicken, wird eine Datei „secrets.json“ angezeigt, die die gerade in der Befehlszeile festgelegten Schlüssel-Wert-Paare enthält:


Bild

Einige Schüler können dies tun Da es sich um einen Speicher in Secrets.json handelt, fragen Sie: Wo ist diese Datei?

Wo wird Secrets.json gespeichert?

In Nicht-Windows-Systemen ist der Speicherort

In Windows-Systemen ist der Speicherort

~/.microsoft/usersecrets/<userSecretsId>/secrets.json
Nach dem Login kopieren
Wie Sie können Sehen Sie, der gespeicherte Ordner der oberen Ebene ist der Wert, der durch

userSecretsId
in der Datei

project.json
C:\Users\用户名\AppData\Roaming\Microsoft\UserSecrets\aspnet-WebAppCore-e278c40f-15bd-4c19-9662-541514f02f3e
Nach dem Login kopieren
festgelegt wird.

Benutzergeheimnisse in Anwendungen verwenden

Um auf konfigurierte Benutzergeheimnisse in Ihrer Anwendung zuzugreifen, müssen Sie sicherstellen, dass

project.json Abhängigkeiten vorhanden sind in der Datei vorhanden:

Microsoft.Extensions.Configuration.UserSecrets

und builder.AddUserSecrets().

然后在Startup.cs文件中通过 Configuration 对象访问

public IConfigurationRoot Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
  var wechatKey = Configuration["WeChatAppKey"]
}
Nach dem Login kopieren

你可以使用DI来将用户机密映射到一个C#类文件,像这样

secrets.json

{
  "SecretsKeys":
  {
    WeCharAppKey:"xxejfwert3045",
    WeboAppKey:"35402345lkefgjlkdfg",
    .....
  }
}
Nach dem Login kopieren

SecretsKeysConfig.cs

public class SecretsKeysConfig
{
  public string WeCharAppKey { get; set;}
  
  public string WeboAppKey { get; set;}
  
  // ......
}
Nach dem Login kopieren

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
  services.Configure<SecretsKeysConfig>(Configuration.GetSection("SecretsKeys"));
  
  // 其他代码
}
Nach dem Login kopieren

HomeController.cs

public class HomeController : Controller
{
  public SecretsKeysConfig AppConfigs { get; }
  public HomeController(IOptions<SecretsKeysConfig> appkeys)
  {
    AppConfigs = appkeys.Value;
  }

}
Nach dem Login kopieren

注意:如果你的appsetting.json文件中有和secrets.json文件中相同节点(冲突)的配置项,那么就会被secrets.json中的设置项给覆盖掉,因为 builder.AddUserSecrets()晚于 AddJsonFile("appsettings.json")注册, 那么我们可以利用这个特性来在每个开发人员的机器上重新设置数据库连接字符串了。

总结

以上,或许可以感受到微软在 ASP.NET Core 中对于开发人员还是非常贴心的,很多小细节都考虑到了,因此在我们构建应用程序的过程中,可以多使用这些小功能(特性)来让我们的代码更加的优雅~

【相关推荐】

1. ASP.NET免费视频教程

2. 详细介绍ZKEACMS for .Net Core

3. 在.net core 下如何进行http请求?

4. 如何在ASP.NET Core中使用Cookie中间件的详细介绍

5. .Net Core中如何使用ref和Span提高程序性能的实现代码

Das obige ist der detaillierte Inhalt vonTeilen Sie ein Beispiel dafür, wie ASP.NET Core Geheimnisse (Benutzergeheimnisse) in der Entwicklungsumgebung speichert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So aktivieren Sie die Speicherintegritätsfunktion von Core Isolation in Windows 11 So aktivieren Sie die Speicherintegritätsfunktion von Core Isolation in Windows 11 May 10, 2023 pm 11:49 PM

Microsofts Windows 11 2022 Update (22H2) aktiviert standardmäßig den Speicherintegritätsschutz von CoreIsolation. Wenn Sie jedoch eine ältere Version des Betriebssystems ausführen, beispielsweise Windows 11 2022 Update (22H1), müssen Sie diese Funktion manuell aktivieren. Aktivieren Sie die Speicherintegritätsfunktion von CoreIsolation in Windows 11. Für Benutzer, die sich mit Core Isolation nicht auskennen: Es handelt sich um einen Sicherheitsprozess, der grundlegende Kernaktivitäten unter Windows vor Schadprogrammen schützen soll, indem er sie im Speicher isoliert. Dieser Prozess gewährleistet in Kombination mit der Speicherintegritätsfunktion

Was bedeutet Computerkern? Was bedeutet Computerkern? Sep 05, 2022 am 11:24 AM

Kern hat in Computern zwei Bedeutungen: 1. Der Kern, auch Kern genannt, ist der wichtigste Teil der CPU. Alle Berechnungen, die Annahme von Speicherbefehlen und die Verarbeitung von Daten der CPU werden vom Kern durchgeführt. Core ist der Prozessorname von Intel. Core ist die Prozessormarke, die Intel nach dem Pentium-Prozessor eingeführt hat. Derzeit werden Core-Prozessoren der zwölften Generation herausgebracht.

So beheben Sie den thermischen Auslösefehler des Prozessors in Windows 11/10 [Fix] So beheben Sie den thermischen Auslösefehler des Prozessors in Windows 11/10 [Fix] Apr 17, 2023 am 08:13 AM

Die meisten Geräte wie Laptops und Desktops werden seit langem stark von jungen Gamern und Programmierern genutzt. Das System hängt manchmal aufgrund einer Anwendungsüberlastung. Dies zwingt Benutzer dazu, ihre Systeme herunterzufahren. Dies passiert hauptsächlich Spielern, die umfangreiche Spiele installieren und spielen. Wenn das System nach einem erzwungenen Herunterfahren versucht, zu starten, wird auf einem schwarzen Bildschirm ein Fehler angezeigt, wie unten dargestellt: Nachfolgend sind die Warnungen aufgeführt, die während dieses Startvorgangs erkannt wurden. Diese können in den Einstellungen auf der Seite „Ereignisprotokoll“ eingesehen werden. Warnung: Überhitzung des Prozessors. Drücken Sie eine beliebige Taste, um fortzufahren. ..Diese Art von Warnmeldungen werden immer dann ausgegeben, wenn die Prozessortemperatur eines Desktops oder Laptops den Temperaturschwellenwert überschreitet. Nachfolgend sind die Gründe aufgeführt, warum dies auf Windows-Systemen geschieht. Viele schwere Anwendungen sind in

So lösen Sie das Problem der Docker-Mounting-Verzeichnisberechtigungen So lösen Sie das Problem der Docker-Mounting-Verzeichnisberechtigungen Feb 29, 2024 am 10:04 AM

In Docker kann das Berechtigungsproblem des Mount-Verzeichnisses normalerweise durch die folgende Methode gelöst werden: Hinzufügen berechtigungsbezogener Optionen bei Verwendung des Parameters -v zur Angabe des Mount-Verzeichnisses. Sie können die Berechtigungen des gemounteten Verzeichnisses angeben, indem Sie nach dem gemounteten Verzeichnis Folgendes hinzufügen: ro oder :rw, was jeweils Lese- und Lese-/Schreibberechtigungen angibt. Beispiel: dockerrun-v/host/path:/container/path:roimage_name Definieren Sie die USER-Direktive in der Docker-Datei, um den Benutzer anzugeben, der im Container ausgeführt wird, um sicherzustellen, dass Vorgänge innerhalb des Containers den Berechtigungsanforderungen entsprechen. Zum Beispiel: FROMimage_name#CreateanewuserRUNuseradd-ms/bin/

Lohnt es sich, den CORE-Coin langfristig zu halten? Lohnt es sich, in CORE-Coins zu investieren? Lohnt es sich, den CORE-Coin langfristig zu halten? Lohnt es sich, in CORE-Coins zu investieren? Feb 29, 2024 pm 05:34 PM

CORE-Coin: Lohnt es sich, ihn langfristig zu halten? CORE Coin ist eine Kryptowährung, die auf dem Proof of Work (PoW)-Konsensmechanismus basiert und 2018 vom Core-Team gegründet wurde. Ziel ist es, ein sicheres, effizientes und skalierbares digitales Währungssystem zu etablieren, das in großem Umfang für Zahlungen und Wertspeicherung genutzt wird. CORE Coin soll eine dezentrale Zahlungslösung bieten, die den Benutzern mehr Datenschutz und Transaktionskomfort bietet. Vorteile und Sicherheit der CORE-Währung: Die CORE-Währung basiert auf dem Workload-Proof-Konsensmechanismus und verfügt über eine hohe Sicherheit. Effizient: Die Transaktionsgeschwindigkeit der CORE-Münze ist hoch und kann Tausende von Transaktionen pro Sekunde verarbeiten. Skalierbar: Der CORE-Coin verfügt über eine große Blockkapazität und kann eine große Anzahl von Transaktionen unterstützen. Dezentralisierung: CORE Coin ist eine dezentrale Kryptowährung

Was ist Core unter Linux? Was ist Core unter Linux? Mar 23, 2023 am 10:00 AM

Unter Linux ist Core ein Speicherabbild mit hinzugefügten Debugging-Informationen. Wenn ein Programm unter Linux beendet oder abnormal beendet wird, verwenden wir die Core-Datei zur Analyse, die den Speicher, Register, Stapelzeiger und andere Informationen enthält, wenn das Programm ausgeführt wird. Das Format ist ELF, was so verstanden werden kann, dass der aktuelle Status des Programms in eine Datei geschrieben wird.

Praxis für plattformübergreifende .NET Core-Anwendungsentwicklung: eine nahtlose Reise von Windows zu Linux und macOS Praxis für plattformübergreifende .NET Core-Anwendungsentwicklung: eine nahtlose Reise von Windows zu Linux und macOS Feb 26, 2024 pm 12:55 PM

Mit der Einführung von .NETCore haben .NET-Entwickler eine neue Möglichkeit, .NET-Anwendungen einfach auf mehreren Betriebssystemen zu schreiben und auszuführen. In diesem Artikel wird erläutert, wie Sie mit .NETCore eine plattformübergreifende Anwendungsentwicklung erreichen und Best-Practice-Erfahrungen auf Betriebssystemen wie Windows, Linux und macOS austauschen. 1. Bereiten Sie die Entwicklungsumgebung vor. Um mit der plattformübergreifenden Anwendungsentwicklung zu beginnen, müssen Sie zunächst die Entwicklungsumgebung für jede Zielplattform vorbereiten. Windows Unter Windows können Sie .NETCoreSDK über Visual Studio installieren. Nach Abschluss der Installation können Sie .NETCore-Projekte über Visual Studio erstellen und ausführen. Li

IFA 2024 | Core Ultra Series 2: Mit Lunar Lake stellt Intel seine bisher effizienteste x86-CPU vor IFA 2024 | Core Ultra Series 2: Mit Lunar Lake stellt Intel seine bisher effizienteste x86-CPU vor Sep 04, 2024 am 06:38 AM

Rund ein Jahr nach der Ankündigung der Core Ultra Series 1, auch bekannt als Meteor Lake, legt Intel mit der zweiten Generation nach. Core Ultra Series 2 alias Lunar Lake wurde bereits auf der Computex im Juni vorgestellt. Auf der IFA fand die endgültige Markteinführung des Core Ultr statt

See all articles