Web 应用程序中的特殊字符支持 app.config

Special characters support in web applications app.config

提问人:saravana 提问时间:9/15/2023 最后编辑:Panagiotis Kanavossaravana 更新时间:9/15/2023 访问量:42

问:

我需要使用所有特殊字符创建数据库应用程序用户登录,例如_:[/>}]*'~A1\{<°!§$%&/a()'";=?

并将此用户名和密码保存在 WCF app.config 和 Web 应用程序 web.config connectionstring 键中,以便从应用程序连接数据库。

在 C# 中使用 System.Security.SecurityElement.Escape() 尝试并收到以下错误,

  • 分号

    保存到配置文件时出现“关键字不支持错误”

  • 如果密码以双引号/单引号开头

    在保存配置文件时获取“'初始化字符串的格式不符合从索引 71 开始的规范。'

  • 如果使用其他特殊字符,如 § °

    获取“给定编码中的无效字符。第 14 行,位置 125。 更新 ConnectionString 时

尝试使用以下查询创建新登录名,

CREATE LOGIN sa1 WITH PASSWORD=N'~A1\{<°!§$%&/a()'";=?`_:[/>}]*', DEFAULT_DATABASE=[tempdb], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
  • 使用上述脚本时,在单引号附近出现语法错误

有人可以帮助处理SQL和应用程序级别的这些特殊字符吗?

C# asp.net XML

评论

0赞 Panagiotis Kanavos 9/15/2023
这与“特殊字符”无关 - 是一个 XML 文档,这意味着必须对其中一些字符进行转义,例如 ,这会被误认为是结束引号和 \,这是转义字符本身。如果将文件保存为 UTF8(默认值),则就 XML 而言,所有其他文件都只是文本web.config"
0赞 Panagiotis Kanavos 9/15/2023
Tried creating new logon这与 ASP.NET 或 XML 无关 - 在 SQL 中,字符串的转义方式不同。在这种情况下,只需要使用另一个 ,例如'''It''s escaped'
0赞 Panagiotis Kanavos 9/15/2023
为什么仍然使用具有如此奇怪密码的 SQL 帐户?最安全的选项是创建 Windows 帐户(即使是服务帐户),并将 Windows 登录添加到 SQL Server。WCF 服务可以使用自己的服务帐户连接到数据库。这样就没有任何理由在任何地方存储密码。可以在本地计算机和域级别创建服务帐户,仅当服务处于活动状态时才处于活动状态,因此无需在任何地方指定密码。
0赞 saravana 9/15/2023
我的客户位于不同的区域,他们使用不同的字符来配置 SQL 帐户并在应用程序配置文件中使用。某些字符给出错误。所以他们基本上想支持所有的角色。
0赞 Panagiotis Kanavos 9/15/2023
这不会影响我发表的任何评论。 使用 UTF8,因此区域不起作用。在 XML 或 SQL 中,只有特定字符需要转义。无需使用 SQL 帐户,除非客户端位于不同的 Windows 域中,或者根本没有。安全选项是使用服务帐户web.config

答: 暂无答案