最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ASP.NET Core優(yōu)雅的在開發(fā)環(huán)境保存機密(User Secrets)

 更新時間:2017年05月25日 11:52:50   作者:Savorboard  
這篇文章主要為大家詳細介紹了ASP.NET Core如何優(yōu)雅的在開發(fā)環(huán)境保存機密User Secrets,具有一定的參考價值,感興趣的小伙伴們可以參考一下

前言

在應用程序開發(fā)的過程中,有的時候需要在代碼中保存一些機密的信息,比如加密密鑰,字符串,或者是用戶名密碼等。通常的做法是保存到一個配置文件中,在以前我們會把他保存到web.config中,但是在ASP.NET Core中,這一方式或許發(fā)生了改變,或者說你有更多多元化的方法, 以及更加優(yōu)雅的的配置來設置或者保存這些機密資料。

起初我以為這個UserSecrets它并沒有什么用,因為我有需要配置的地方我直接配置到appsetting.json文件中就可以了,直到一次開發(fā)過程中,我才感受到了它真正的用途。

目錄

  • 用戶機密介紹
  • 如何添加用戶機密
  • 在應用程序中使用用戶機密
  • 總結

用戶機密介紹

有以下場景大家可以想一下在以前的代碼中我們是怎么樣處理的:

  • 需要保存一些和第三方網站對接的密鑰,比如和 微信,微博站點使用的 appkey
  • 給每個開發(fā)人員配置不用的用戶名密碼來訪問一些資源
  • 開發(fā)人員在開發(fā)過程中使用各自本機的數(shù)據庫,如何配置數(shù)據庫地址、賬號和密碼

假設說最后一項,每個開發(fā)要使用自己本機的數(shù)據庫,你可能會說讓每個人修改自己的web.config,在提交代碼的時候不提交就行了。那么如果在web.config添加其他配置項的時候,顯然不提交web.config文件不合理的。

現(xiàn)在,ASP.NET Core 提供了一種很優(yōu)雅簡潔的方式 User Secrets 用來幫助我們解決這個事情。

在新建一個 ASP.NET Core Web 應用程序的時候,會在 Startup.cs 文件中看到這樣一段代碼:

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

  if (env.IsDevelopment())
  {
    builder.AddUserSecrets();
  }
  
  builder.AddEnvironmentVariables();
}

project.json 文件中,會看到 User Secrets 相關的一些配置

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

可以看到builder.AddUserSecrets這行代碼,他是在開發(fā)環(huán)境才運行的。

userSecretsId是用來標識項目的User Secrets唯一性的,如果有兩個項目需要使用不同的Secrets ,這就需要有不同的userSecretsId。

Microsoft.Extensions.SecretManager.Tools 主要是用來設置或者查看secrets的值。

如何添加用戶機密

可以在命令行中使用命令來添加:

image

  • 切換命令行窗口到程序的運行目錄, 輸入 dotnet user-secrets -h ,來查看可以使用的命令
  • 使用 dotnet user-secrets list 列出所有的用戶機密
  • 使用 dotnet user-secrets set WeChatAppKey "X3423FEED2435DD"設置一個用戶機密,其中 WebChatAppKey 為鍵,后面的是值。
  • 然后使用dotnet user-secrets list來查看設置的鍵值對。
  • 然后我又設置了一個數(shù)據庫的連接字符串進去。

以上是使用命令行的方式來設置用戶機密,也可以使用 Visual Studio 2015代替命令行來做這項工作。

Visual Studio中,在Web項目上右鍵,可以看到一個 管理用戶機密 的菜單:

image

點擊打開時候,會出現(xiàn)一個secrets.json的文件,里面就是剛剛在命令行設置的鍵值對:

image

有些同學可能會問既然是存儲到secrets.json,那么這個文件是在哪里呢?

secrets.json的存儲位置?

在非Windows系統(tǒng)中,它的存儲位置在

~/.microsoft/usersecrets/<userSecretsId>/secrets.json

在Windows系統(tǒng)中,它的位置在

C:\Users\用戶名\AppData\Roaming\Microsoft\UserSecrets\aspnet-WebAppCore-e278c40f-15bd-4c19-9662-541514f02f3e

可以看到,存儲的上層文件夾就是project.json文件中的 userSecretsId 設定的值。

在應用程序中使用用戶機密

要在應用程序中訪問配置的用戶機密,你需要保證project.json文件中存在依賴項:
Microsoft.Extensions.Configuration.UserSecrets 并且builder.AddUserSecrets()。

然后在Startup.cs文件中通過 Configuration 對象訪問

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

你可以使用DI來將用戶機密映射到一個C#類文件,像這樣

secrets.json

{
  "SecretsKeys":
  {
    WeCharAppKey:"xxejfwert3045",
    WeboAppKey:"35402345lkefgjlkdfg",
    .....
  }
}

SecretsKeysConfig.cs

public class SecretsKeysConfig
{
  public string WeCharAppKey { get; set;}
  
  public string WeboAppKey { get; set;}
  
  // ......
}

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
  services.Configure<SecretsKeysConfig>(Configuration.GetSection("SecretsKeys"));
  
  // 其他代碼
}

HomeController.cs

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

}

注意:如果你的appsetting.json文件中有和secrets.json文件中相同節(jié)點(沖突)的配置項,那么就會被secrets.json中的設置項給覆蓋掉,因為 builder.AddUserSecrets()晚于 AddJsonFile("appsettings.json")注冊, 那么我們可以利用這個特性來在每個開發(fā)人員的機器上重新設置數(shù)據庫連接字符串了。

總結

以上,或許可以感受到微軟在 ASP.NET Core 中對于開發(fā)人員還是非常貼心的,很多小細節(jié)都考慮到了,因此在我們構建應用程序的過程中,可以多使用這些小功能(特性)來讓我們的代碼更加的優(yōu)雅~

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • ASP.NET框架中的數(shù)據綁定概要與數(shù)據綁定表達式的使用

    ASP.NET框架中的數(shù)據綁定概要與數(shù)據綁定表達式的使用

    數(shù)據綁定是ASP.NET中操作數(shù)據的基礎方式,這里我們暫時拋開.NET提供的控件,來從基礎上講解ASP.NET框架中的數(shù)據綁定概要與數(shù)據綁定表達式的使用:
    2016-06-06
  • ASP.NET MVC實現(xiàn)橫向展示購物車

    ASP.NET MVC實現(xiàn)橫向展示購物車

    這篇文章介紹了ASP.NET MVC實現(xiàn)橫向展示購物車的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-09-09
  • .Net連接Oracle數(shù)據庫的實現(xiàn)代碼

    .Net連接Oracle數(shù)據庫的實現(xiàn)代碼

    本文使用System.Data.OracleClient方式,這是MS提供的以ADO.NET方式訪問Oracel的驅動;Oracle也有個Oracle Data Provider for .NET(ODP.NET)下篇再討論。
    2009-02-02
  • 基于localStorge開發(fā)登錄模塊的記住密碼與自動登錄實例

    基于localStorge開發(fā)登錄模塊的記住密碼與自動登錄實例

    下面小編就為大家?guī)硪黄趌ocalStorge開發(fā)登錄模塊的記住密碼與自動登錄實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Aspose.Cells組件導出excel文件

    Aspose.Cells組件導出excel文件

    這篇文章主要介紹了利用Aspose.Cells組件導出excel文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • asp.net SqlHelper數(shù)據訪問層的使用

    asp.net SqlHelper數(shù)據訪問層的使用

    如果不使用數(shù)據訪問層,那么你的代碼里會出現(xiàn)很多SqlConnection、SqlCommand、SqlDataReader、Open、 Close……這些類和方法,而且代碼量很大,讓你不勝其煩,而且代碼寫起來,其實都是體力活,沒有技術含量。
    2008-09-09
  • .NET 與樹莓派WS28XX 燈帶的顏色漸變動畫效果的實現(xiàn)

    .NET 與樹莓派WS28XX 燈帶的顏色漸變動畫效果的實現(xiàn)

    所謂顏色漸變動畫,首先,你要確定兩種顏色——起始色和最終色,比如從綠色變成紅色,綠色是起始,紅色是終點。這篇文章主要介紹了.NET 與樹莓派WS28XX 燈帶的顏色漸變動畫,需要的朋友可以參考下
    2021-12-12
  • asp net core 2.1中如何使用jwt(從原理到精通)

    asp net core 2.1中如何使用jwt(從原理到精通)

    這篇文章主要給大家介紹了關于asp net core 2.1中如何使用jwt(從原理到精通)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起看看吧
    2018-11-11
  • ASP.NET MVC分頁控件

    ASP.NET MVC分頁控件

    本文主要介紹了ASP.NET MVC分頁控件。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • 分享AjaxPro或者Ajax實現(xiàn)機制

    分享AjaxPro或者Ajax實現(xiàn)機制

    今天與大家分享AjaxPro或者Ajax實現(xiàn)機制,需要的朋友可以參考下。
    2011-12-12

最新評論

禄劝| 陆丰市| 苍溪县| 花莲市| 溆浦县| 巴里| 民和| 麻栗坡县| 镇巴县| 潍坊市| 余庆县| 涿州市| 明光市| 孟州市| 于田县| 新平| 台东县| 萨迦县| 凯里市| 岳阳市| 兴安县| 华宁县| 福清市| 建阳市| 保靖县| 五原县| 隆子县| 高要市| 延边| 瑞金市| 余庆县| 内乡县| 锦州市| 东乡| 兴化市| 东安县| 临洮县| 顺义区| 抚宁县| 基隆市| 长海县|