日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

[译]ASP.NET Core 2.0 机密配置项

發布時間:2025/5/22 asp.net 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [译]ASP.NET Core 2.0 机密配置项 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題

如何在ASP.NET Core 2.0中保存機密配置項(不用將其暴露給源代碼管理器)?

答案

創建一個ASP.NET Core 2.0空項目,在項目節點上點擊右鍵,并點擊菜單項 -?管理用戶機密:

這將會打開secrets.json文件,添加配置鍵值對:

{"UserPassword": "Password1" }

?為此配置項添加POCO類:

public class SecretSettings {public string UserPassword { get; set; } } 

使用之前創建的HelloWorldMiddleware中間件,將IOptions<T>作為中間件的構造函數參數注入,其中T就是我們剛剛定義的POCO類:

public class HelloWorldMiddleware {private readonly RequestDelegate _next;private readonly SecretSettings _settings;public HelloWorldMiddleware(RequestDelegate next, IOptions<SecretSettings> options){_next = next;_settings = options.Value;}public async Task Invoke(HttpContext context){var jsonSettings = JsonConvert.SerializeObject(_settings, Formatting.Indented);await context.Response.WriteAsync(jsonSettings);} }public static class UseHelloWorldInClassExtensions {public static IApplicationBuilder UseHelloWorld(this IApplicationBuilder app){return app.UseMiddleware<HelloWorldMiddleware>();} }  

在Startup.cs中,我們需要做如下幾件事:

1.?通過構造函數參數注入IConfiguration

2.?在ConfigureServices()中添加Options服務,并添加機密配置的依賴項

3.?在Configure()方法中使用中間件

public class Startup {public static IConfiguration Configuration { get; private set; }public Startup(IConfiguration configuration){Configuration = configuration;}public void ConfigureServices(IServiceCollection services){services.AddOptions();services.Configure<SecretSettings>(Configuration);}public void Configure(IApplicationBuilder app, IHostingEnvironment env){app.UseHelloWorld();} }  

運行,此時頁面顯示:

?

討論

之前我們討論過如何在配置文件中存儲全局配置項。然而,這些配置文件會被簽入源代碼管理器,因此不適合用于保存機密配置。在生產環境中,這些配置可以保存到環境變量或者Azure云的密鑰存儲庫中 。對于開發環境,ASP.NET Core 2.0提供了可選的解決方案:用戶機密管理器。

用戶機密管理器允許開發人員將機密信息保存到secrets.json文件中,而不會簽入到源代碼管理器。secrets.json文本被保存到系統的AppData目錄中,在VS2017中你可以將鼠標移動到相應的選項卡上查看文件路徑。需要注意的一點:機密信息是被保存在普通文本文件中的。這些文件是在創建WebHost時由運行時讀取并加載的。

?

====start by sanshi=========================

你可能也注意到了用戶機密文件路徑中的那個類似GUID的字符串了,它是由VS 2017自動創建的,并存在工程文件中(SecretConfiguration.csproj):

<Project Sdk="Microsoft.NET.Sdk.Web"><PropertyGroup><TargetFramework>netcoreapp2.0</TargetFramework><UserSecretsId>2d08d295-6b15-46b3-a5a3-ad0b1992f492</UserSecretsId></PropertyGroup><ItemGroup><PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" /></ItemGroup></Project>

====end by sanshi=========================

CLI

我們也可以使用命令行界面(CLI)的指令?dotnet user-secrets?來管理機密信息。為此,我們需要首先想工程文件中添加如下配置:

<ItemGroup><DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.0" /> </ItemGroup>  

?接下來,我們就可以使用如下命令來管理用戶機密信息:

1.?list:列出所有的機密信息,例如:dotnet user-secrets list

2.?set:添加或更新某個機密項,例如:dotnet user-secrets set SecretSetting “SecretValue”

3. remove:刪除某個機密項,例如:dotnet user-secrets remove SecretSetting

4. clear:清空所有機密項,例如:dotnet user-secrets clear

====start by sanshi=========================

下面,我們會簡單演示這一過程,首先打開命令行窗體(Windows+X),并定位到項目所在目錄:

cd C:\Users\sanshi\Desktop\ASP.NET_Core_20_Articles\SecretConfiguration\SecretConfiguration

然后鍵入如下命令:

dotnet user-secrets list  

運行結果:

下面來修改這個機密項:

dotnet user-secrets set UserPassword "My New Password"

在VS中打開機密文件,發現已經修改成功:

{"UserPassword": "My New Password" }

====end by sanshi=========================

?

源代碼下載

?

原文:https://tahirnaushad.com/2017/08/31/asp-net-core-2-0-secret-manager/

總結

以上是生活随笔為你收集整理的[译]ASP.NET Core 2.0 机密配置项的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。