c# - services - migrate asp net mvc to asp net core
El carácter "&" rompe las contraseñas que se almacenan en la web.config (3)
Deberá poner el valor codificado en web.config. Lo leerá correctamente una vez que lo hagas, pero en el archivo de configuración en sí necesita ser codificado.
p.ej:
Contraseña: your&password
(lo que esperas)
Versión codificada: your&password
(lo que debe ser almacenado en su web.config)
El método de contenedor que lee el valor debe descodificarlo automáticamente a your&password
.
Tendrá que hacer esto para todos los personajes ''especiales'':
< = <
> = >
" = "
'' = '
& = &
Tengo una aplicación ASP.NET MVC3 C # .NET ejecutándose en IIS 7.5.
Tenemos una cuenta de servicio de Windows NT que suplantamos en nuestro código para leer / escribir documentos en un archivo compartido. La identificación del usuario se compila en el código y la contraseña de la cuenta del servicio se almacena en el archivo web.config.
La contraseña contiene un carácter ampersand (es decir: p&ssword
).
Esto rompió el sitio. Al acceder al sitio, recibimos este error: "Lo sentimos, se produjo un error al procesar su solicitud".
Aquí está el código que usa la contraseña:
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
);
¿Por qué esto causaría que el sitio se rompa?
Sospecho que no codificó la contraseña correctamente en el archivo web.config
. Recuerde que web.config
es un archivo XML, por lo que las entidades deben estar codificadas.
En lugar de
my&password
tratar
my&password
Puede usar sitios como FreeFormatter.com para escapar / deshacer cadenas XML.
almacene la contraseña en el web.config usando CDATA
reemplace la contraseña con esto
<![CDATA[MyPassw&rd]]>