asp.net - different result when encoding values from web.config -
i trying form basic authentication header getting username , password web.config when these values web.config, base64 string different ones hard coding values straight code.
this web.config:
<?xml version="1.0" encoding="utf-8"?> <appsettings> <add key="username" value="lowercaseusername"/> <add key="password" value="mixedcasepassword"/> </appsettings>
and code:
var username = configurationmanager.appsettings["username"]; var password = configurationmanager.appsettings["password"]; string encodedvalues = `convert.tobase64string(system.text.encoding.utf8.getbytes(username + ":" + password));`
i "4ocl" @ end of encoded string when them web.config opposed hardcoded directly values in code
your web.config have utf-8
encoding. if copy-pasted password , set web.config encoding iso-8859-1
:
<?xml version="1.0" encoding="iso-8859-1"?>
that's when getting value config:
mixedcasepasswordâ\u0080\u008b
this should correspond to
mixedcasepassword​
so there's invisible characters have been incorrectly encoded in web.config.
the web.config file xml file, values need encoded. if set in web.config (keeping encoding @ utf-8
):
<add key="password" value="mixedcasepassword​" />
you should have true
if test:
configurationmanager.appsettings["password"] == "mixedcasepassword​"
then base64 should match if password web.config or hard coded.
Comments
Post a Comment