programing

"&"문자는 web.config에 저장된 암호를 구분합니다.

nasanasas 2020. 12. 14. 08:25
반응형

"&"문자는 web.config에 저장된 암호를 구분합니다.


IIS 7.5에서 실행되는 ASP.NET MVC3 C # .NET 응용 프로그램이 있습니다.

파일 공유에 문서를 읽고 쓰기 위해 코드에서 가장하는 Windows NT 서비스 계정이 있습니다. 사용자 ID는 코드에서 컴파일되고 서비스 계정 암호는 web.config 파일에 저장됩니다.

암호에는 앰퍼샌드 문자 (예 :)가 포함 p&ssword됩니다.

이로 인해 사이트가 손상되었습니다. 사이트에 액세스 할 때 "죄송합니다. 요청을 처리하는 동안 오류가 발생했습니다"라는 오류가 발생했습니다.

다음은 암호를 사용하는 코드입니다.

    var password = ConfigurationManager.AppSettings.Get(Common.SVC_PWD);

    bool isSuccess = LogonUser(
        @"my_svc_acct",
        "my.domain.net",
        password,
        LOGON32_LOGON_NEW_CREDENTIALS,
        LOGON32_PROVIDER_DEFAULT, ref token
    );

이로 인해 사이트가 중단되는 이유는 무엇입니까?


web.config파일에 암호를 올바르게 인코딩하지 않은 것 같습니다 . 그 기억 web.config엔티티 인코딩해야합니다 있도록하는 XML 파일입니다.

대신에

my&password 

시험

my&password

FreeFormatter.com 과 같은 사이트를 사용 하여 XML 문자열을 이스케이프 / 이스케이프 해제 할 수 있습니다 .


인코딩 된 값을 web.config에 넣어야합니다. 일단 풀면 제대로 읽히지 만 구성 파일 자체에서 인코딩해야합니다.

예 :

암호 : your&password(기대하는 것)

인코딩 된 버전 : your&password(web.config에 저장되어야하는 내용)

값을 읽는 래퍼 메서드는 자동으로로 인코딩을 해제해야 your&password합니다.

모든 '특수'문자에 대해이 작업을 수행해야합니다.

< = &lt;
> = &gt;
" = &quot;
' = &apos;
& = &amp;

CDATA를 사용하여 web.config에 비밀번호 저장

암호를 다음으로 바꾸십시오.

<![CDATA[MyPassw&rd]]>

참고 URL : https://stackoverflow.com/questions/14607920/the-character-breaks-passwords-that-are-stored-in-the-web-config

반응형