출처 : https://www.it-swarm-ko.tech/ko/c%23/appconfig%ec%97%90%ec%84%9c-%ec%97%b0%ea%b2%b0-%eb%ac%b8%ec%9e%90%ec%97%b4-%ec%95%94%ed%98%b8%ed%99%94/1068388488/

 

c# — app.config에서 연결 문자열 암호화

App.config에서 연결 문자열을 암호화하는 데 문제가 있습니다. app.config의 connectionStrings 섹션을 보호하는 코드가 있지만 비밀번호는 여전히 일반 텍스트로 표시됩니다. 배포시 연결 문자열이 일반

www.it-swarm-ko.tech

 

 

App.config에서 연결 문자열을 암호화하는 데 문제가 있습니다. app.config의 connectionStrings 섹션을 보호하는 코드가 있지만 비밀번호는 여전히 일반 텍스트로 표시됩니다.

배포시 연결 문자열이 일반 텍스트가 아니도록 연결 문자열을 암호화해야합니다. web.config의 경우 SO에 대해서는 비슷한 질문이 있지만 app.config는 아닙니다).

c#sql-server-2008app-config

 42

2012. 7. 24.Blade3

 

이 기사 를 살펴보면 매우 유용한 예가 있습니다. 기본적으로 System.Configuration.SectionInformation.ProtectSection 도와 드리겠습니다.

보호 된 구성 구현

 23

2012. 7. 24.John Mitchell

The most convenient and reliable file storage service

Receive your personal cloud storage with 2Gb of space for free

App.config의 이름을 web.config로 바꾸고 aspnet_regiis 도구로 암호화 한 다음 app.config로 다시 바꾸어야하는 web.config와 동일한 솔루션을 쉽게 적용 할 수 있습니다.

  1. App.config를 web.config로 이름을 바꿉니다.
  2. 명령 프롬프트를 열고 다음을 입력하십시오.
    %windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pef "connectionStrings" c:\<folder containing your web.config> (폴더 수준에서 멈추고 후행 "\"를 넣지 마십시오)
  3. web.config의 이름을 app.config로 다시 바꿉니다.

암호화 된 파일을보기 위해 메모장에서 열 수 있습니다. Visual Studio에서는 암호가 해독 된 것을 볼 수 있습니다. 암호화되지 않은 것처럼 연결 문자열을 사용할 수 있습니다.

 50

2015. 3. 21.benoit

config 파일의 위치를 ​​정의하십시오.

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

connectionStrings를 암호화하려는 경우

config.ConnectionStrings.SectionInformation.ProtectSection(Nothing);

앱 구성 부분을 알고 있어야합니다

AppSettings를 암호화하려면

config.AppSettings.SectionInformation.ProtectSection(Nothing);

 3

2016. 12. 11.Salem Ahmed

이것을 자동화하는 방법 :

프로젝트 설정> 컴파일> BuildEvents> 빌드 후 편집

아래 코드를 붙여 넣습니다.

SET ApplicationName=YourAppWithoutExtention echo. echo POST BUILD ACTIONS echo ==================== if EXIST web.config ( echo Deleting web.config DEL web.config ) echo Renaming %ApplicationName%.exe.config to web.config REN %ApplicationName%.exe.config web.config echo Running aspnet_regis against webconfig SET rpath=%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -pef "connectionStrings" "$(TargetDir) SET rpath=%rpath:~0,-1%" echo Path: %rpath% %rpath% echo Renaming web.config to %ApplicationName%.exe.config REN web.config %ApplicationName%.exe.config echo Done.

"YourAppWithoutExtention"을 앱 이름으로 바꿉니다.

그런 다음 빌드 할 때마다 app.config가 자동으로 암호화됩니다.

 2

2019. 1. 6.stigzler

 App.config file to web.config<br> 이름을 바꿉니다. • 관리자 권한으로 명령 프롬프트를 실행합니다.

암호화의 경우 :

따옴표 안에있는 프로젝트 위치 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings"  -prov "DataProtectionConfigurationProvider"

전의:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pef "connectionStrings" "D:\location\location1\location" -prov "DataProtectionConfigurationProvider"

복호화의 경우 :

따옴표 내에서 프로젝트 위치를 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf "connectionStrings".

전의:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -pdf "connectionStrings" "D:\location1\location"

오류의 경우 :

구성에서 추가 xmlns="http://schemas.Microsoft.com/.NetConfiguration/v2.0"

이처럼 :

• 마지막으로 web.config의 이름을 App.Config로 바꿉니다.

 2

2018. 10. 11.anantha Krishnan

Flexible, reliable and affordable cloud hosting

Sign up and get $50 bonus within 30-day!

또한 웹 팜 에 연결 문자열을 암호화 및 해독하려는 사람이있는 경우 다음 단계를 수행하십시오.

  1. RSA 키를 작성하십시오. aspnet_regiis -pc "MyKeys" -exp

  2. 이 키에 응용 프로그램 풀 ID에 대한 액세스 권한을 부여하십시오. aspnet_regiis -pa "MyKeys" "IIS AppPool\ApplicationPoolName" -full

  3. Web.config에 RSA 제공자를 추가하십시오. <configuration> <configProtectedData> <providers> <add name="MyProvider" type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" keyContainerName="MyKeys" useMachineContainer="true" /> </providers> </configProtectedData> </configuration>

  4. RSA 제공자를 사용하여 web.config를 암호화하십시오. aspnet_regiis -pe "connectionStrings" -app "/MyApplication" -prov "MyProvider" 참고 : 단일 서버 시나리오에서 사용했던 것과 같은 대체 구문을 사용할 수 있습니다. 예: ASPNET_REGIIS -pef "connectionStrings" "D:\inetpub\wwwroot\applicationFolder" -prov "MyProvider"

  5. Web.config를 열고 연결 문자열이 암호화되었는지 확인
  6. 사이트를 테스트하고 작동하는지 확인
  7. Web.config를 해독하십시오. 아래 코드를 사용하여 test.aspx 파일을 만듭니다. 해독 된 파일을 보려면 그것을 찾아보십시오
  8. RSA 키를 C 드라이브로 내 보냅니다. aspnet_regiis -px "MyKeys" "c:\keys.xml" -pri
  9. 이 파일을 웹 팜의 두 번째 서버로 복사
  10. 해당 서버로 가져옵니다. aspnet_regiis -pi "MyKeys" "c:\keys.xml"
  11. 이 키에 대한 액세스 권한 부여 (2 단계와 동일)
  12. 두 번째 서버에서 애플리케이션 테스트

출처 : 연결 문자열을 암호화하고 해독하는 방법

 

#c# #config #aspnet_regiis

Posted by 요지
,