ASP.NET Core 우아 하 게 개발 환경 에서 기밀 보관(User Secrets)
응용 프로그램 개발 과정 에서 암호 화 키,문자열,사용자 이름 비밀번호 등 비밀 정 보 를 코드 에 저장 해 야 할 때 가 있 습 니 다.일반적인 방법 은 하나의 프로필 에 저장 하 는 것 입 니 다.이전에 우 리 는 그 를 웹.config 에 저장 하 였 으 나,ASP.NET Core 에 서 는 이러한 방식 이 바 뀌 었 거나,더 많은 다 원 화 된 방법 과 더욱 우아 한 설정 으로 이러한 기밀 자 료 를 설정 하거나 보존 할 수 있 습 니 다.
처음에 저 는 이 UserSecrets 가 아무 소 용이 없다 고 생각 했 습 니 다.제 가 설정 해 야 할 부분 이 있 기 때문에 apptting.json 파일 에 직접 설정 하면 됩 니 다.개발 과정 에서 저 는 그 진정한 용 도 를 느 꼈 습 니 다.
목차
사용자 기밀 소개
사용자 기밀 을 어떻게 추가 합 니까?
응용 프로그램 에서 사용자 기밀 을 사용 하 다.
총화
사용자 기밀 안내
다음 장면 이 있 습 니 다.예전 의 코드 에서 우리 가 어떻게 처 리 했 는 지 생각해 보 세 요.
4.567917.제3자 사이트 와 연 결 된 키 를 저장 해 야 합 니 다.예 를 들 어 위 챗,위 챗 사이트 에서 사용 하 는 appkey4.567917.모든 개발 자 에 게 사용 하지 않 는 사용자 이름 비밀 번 호 를 설정 하여 자원 을 방문 합 니 다개발 자 는 개발 과정 에서 각자 본 기기 의 데이터 베 이 스 를 사용 하고 데이터 베이스 주소,계 정과 비밀 번 호 를 어떻게 설정 합 니까?
마지막 으로 개발 할 때마다 자신의 컴퓨터 데이터 베 이 스 를 사용 해 야 한다 고 가정 하면 모든 사람 이 자신의 웹.config 를 수정 하고 코드 를 제출 할 때 제출 하지 않 으 면 된다 고 말 할 수 있 습 니 다.웹.config 에 다른 설정 항목 을 추가 할 때 웹.config 파일 을 제출 하지 않 는 것 은 불합리 합 니 다.
현재 ASP.NET Core 는 우아 하고 간결 한 방식 으로 User Secrets 를 제공 하여 우리 가 이 일 을 해결 하 는 데 도움 을 주 었 다.
ASP.NET Core 웹 프로그램 을 새로 만 들 때 Startup.cs 파일 에서 다음 코드 를 볼 수 있 습 니 다.
public Startup(IHostingEnvironment env)
{
.....
if (env.IsDevelopment())
{
builder.AddUserSecrets();
}
builder.AddEnvironmentVariables();
}
procject.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.addUser Secrets 라 는 코드 를 볼 수 있 습 니 다.그 는 개발 환경 에서 실행 되 었 습 니 다.userSecretsId 는 항목 을 표시 하 는 User Secrets 의 유일 성 으로 두 항목 이 서로 다른 Secrets 를 사용 해 야 한다 면 서로 다른 userSecretsId 가 필요 하 다.
Microsoft.Extensions.SecretManager.Tools 는 주로 secrets 의 값 을 설정 하거나 보 는 데 사 용 됩 니 다.
어떻게 사용자 기밀 을 추가 합 니까?
명령 줄 에 명령 을 사용 하여 추가 할 수 있 습 니 다:
image
Visual Studio 에서 웹 프로젝트 에서 오른쪽 단 추 를 누 르 면 사용자 기밀 을 관리 하 는 메뉴 를 볼 수 있 습 니 다.
image
열 려 면 누 르 면 secrets.json 파일 이 나타 납 니 다.명령 행 에 설 치 된 키 쌍 입 니 다.
image
어떤 학우 들 은 secrets.json 에 저 장 된 이상 이 파일 은 어디 에 있 습 니까?
secrets.json 의 저장 위치?
비 윈도 시스템 에서 저장 위치 는
~/.microsoft/usersecrets/
윈도 시스템 에서 그 위 치 는
C:\\\Users\\사용자 이름\AppData\\Roaming\\Microsoft\\UserSecrets\\aspnet-webAppCore-e278c40f-15bd-4c19-9662-541514f02f3e
저 장 된 상위 폴 더 는 procject.json 파일 의 userSecretsId 가 설정 한 값 입 니 다.
응용 프로그램 에서 사용자 기밀 을 사용 하 다.
프로그램 에서 설 정 된 사용자 기밀 에 접근 하려 면 procject.json 파일 에 의존 항목 이 존재 하 는 지 확인 해 야 합 니 다.
Microsoft.Extensions.Configuration.UserSecrets 및 builder.AddUserSecrets().
그리고 Startup.cs 파일 에서 Configuration 대상 을 통 해 접근 합 니 다.
public IConfigurationRoot Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
var wechatKey = Configuration["WeChatAppKey"]
}
사용자 기밀 을 C\#클래스 파일 에 표시 하기 위해 DI 를 사용 할 수 있 습 니 다.이렇게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 파일 과 같은 노드(충돌)의 설정 항목 이 있 으 면 secrets.json 의 설정 항목 에 덮어 씁 니 다.builder.AddUserSecrets()가 AddJSon File("appsettings.json")보다 늦게 등록 되 었 기 때 문 입 니 다.그러면 우 리 는 이 특성 을 이용 하여 모든 개발 자의 기계 에 데이터베이스 연결 문자열 을 다시 설정 할 수 있다.총결산
이상 은 마이크로소프트 가 ASP.NET Core 에서 개발 자 에 게 매우 친절 하 다 는 것 을 느 낄 수 있 습 니 다.많은 세부 사항 을 고려 했 기 때문에 우리 가 응용 프로그램 을 구축 하 는 과정 에서 이런 작은 기능(특성)을 많이 사용 하여 우리 의 코드 를 더욱 우아 하 게 할 수 있 습 니 다~
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
.Net Core Excel 템플릿 읽기 Excel 파일 내보내기텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.