&" 문자는 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
.
모든 '특수' 문자에 대해 이 작업을 수행해야 합니다.
< = <
> = >
" = "
' = '
& = &
CDATA를 사용하여 web.config에 암호 저장
암호를 이 암호로 대체합니다.
<![CDATA[MyPassw&rd]]>
언급URL : https://stackoverflow.com/questions/14607920/the-character-breaks-passwords-that-are-stored-in-the-web-config
'IT' 카테고리의 다른 글
변경된 파일 이름을 'git log'로만 표시하는 방법 (0) | 2023.07.12 |
---|---|
쿼리를 보낼 때 이스케이프해야 하는 것은 무엇입니까? (0) | 2023.07.12 |
gcc로 어셈블리에 컴파일하려면 어떻게 해야 합니까? (0) | 2023.07.12 |
"한 페이지에 모든 열 맞춤" 설정에 대한 파일을 설정하는 방법 (0) | 2023.07.12 |
ORA-01438: 지정된 정밀도보다 큰 값이 이 열에 허용됩니다. (0) | 2023.07.12 |