我们正在开发一个包含登录机制的程序。为方便起见,使用调试版本时会自动输入用户凭据。
#if DEBUG
UsernameTextBox.Text = "someName";
PasswordBox.Password = "somePassword";
据我了解,这不会在发布版本中编译,并且可以安全地保留在代码中(只要用户只获得发布版本)。这是真的?
绝对不!
首先,看看这个:https : //security.stackexchange.com/questions/191590/why-is-storing-passwords-in-version-control-a-bad-idea
解决方法:如何避免在版本控制中存储密码?
如果您的问题是否可以从可执行文件或 dll 中检索,答案是否定的。
当 C# 编译器遇到 #if 指令,最后跟随着 #endif 指令时,它仅在定义了指定符号时才编译指令之间的代码。与 C 和 C++ 不同,您不能为符号分配数值。C# 中的#if 语句是布尔值,仅测试符号是否已定义。
代码甚至没有编译,所以不包含在可执行文件中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句