2011-09-09 4 views
3

web.config 파일에 다음 정보가 있습니다.web.config 파일에 암호를 암호화하고 저장하십시오.

<appSettings> 
<add key="AdminUsername" value="User1"/> 
<add key="AdminPassword" value="Password1"/> 
</appSettings> 

어떻게 암호화하고 저장합니까? 어떻게 해독하고 사용합니까?

+0

같은 대답이 여기에 있습니다. http://stackoverflow.com/questions/6291322/how-to-encrypt-username-and-password-in-web-config-in-c-2-0 – Roshe

답변

2

친절 기사 참조 - http://msdn.microsoft.com/en-us/library/k6h9cz8h%28v=vs.80%29.aspx

을 명령은 다음과 같습니다

다음 aspnet_regiis.exe -pe "appSettings는"-site "MySharePoint"-app "/"

MySharePoint는 가상 디렉터리입니다. web.config 파일도 디렉토리 안에 있어야합니다.

+0

일부만 암호화하면됩니다. appconfig 섹션 전체가 아닙니다. Roshe

+0

답변을 업데이트하십시오. 이제 appSettings 섹션 만 암호화됩니다. 희망이 도움이됩니다. –

2

aspnet_regiis 또는 이와 동등한 API를 사용하여 구성 섹션을 암호화하는 단점은 전체 섹션을 암호화한다는 것입니다.

보안 측면에서 보면 좋지만 관리자가 동일한 섹션에서 중요하지 않은 다른 구성 데이터를 검사하는 것이 더 어려워집니다. appSettings는 관리자가 자주 검사 할 섹션입니다.

하나의 옵션 (예 : <connectionStrings> 섹션에서 더미 연결 문자열을 만드는) 다른 섹션에서 자격 증명을 넣어에만이 섹션을 암호화하는 것입니다

당신은 물론 구문 분석하는 코드를 작성해야합니다
<connectionStrings> 
    ... 
    <add key="AdminCredentials" 
     providerName="" 
     connectionString="Username=...;Password=..." /> 
</connectionStrings> 

더미 연결 문자열 (String.Split) 및 자격 증명을 추출하십시오. 다음 (편의상 처리 생략 오류) 식으로 뭔가 :

string s = ConfigurationManager.ConnectionStrings["AdminCredentials"].ConnectionString; 
string[] tokens = s.Split(';'); 
string userName = tokens[0].Split('=')[1]; 
string password = tokens[1].Split('=')[1]; 
... 

이렇게함으로써, 당신은 당신의 appSettings는 섹션이 암호화되지 않은 남길 수 있습니다.

+0

더미 섹션을 암호화하는 방법에 대해 자세히 설명 할 수 있습니까? – Roshe

+0

@Nilaa, 제 제안은 dummy * connectionString *이 아니고 dummy * section *이 아니 었습니다. 샘플 코드 - providerName에 빈 문자열을 가진 연결 문자열과 connectionString 자체에 사용자 이름과 암호를 참조하십시오. 그런 다음 더미 연결 문자열에서 사용자 이름과 암호를 구문 분석하는 코드를 작성합니다. – Joe

관련 문제