gpt4 book ai didi

c# - 编码/解码文本框

转载 作者:行者123 更新时间:2023-11-30 12:15:57 25 4
gpt4 key购买 nike

我使用 Asp.Net 4、C# 和 MS SQL。

对于我的网站,我使用 MS 默认解决方案来防止跨站点脚本。

我还习惯于在我的逻辑中对所有用户的输入进行编码,以便可以将这些数据编码存储在我的数据库中。

目前我正在使用 GridView 执行一些基本的 CRUD 操作,但我遇到了一个问题。

  • 创建:用户可以插入任何输入,我的逻辑将编码并保存在数据库中。
  • 阅读:GridView 可以在“标签”中显示来自数据库的用户输入,由于字段“HtmlEnscape True or False”的属性,结果已解码。
  • 更新:这是我的问题!在编辑文本框时,会显示来自数据库编码的用户输入(以这种方式保存),但我需要再次解码以将其显示给用户,以便可以以友好的方式进行编辑并重新保存。

我的问题:- 怎么做?- 因为我在我的应用程序的许多页面中有许多文本框,如何集中这种行为?

谢谢大家的帮助!

最佳答案

首先我要说的是,在存储到数据库之前,您永远不应该进行编码。您在输出点进行编码 - 在将其放入文本框、网格或任何地方之前。

这有几个优点;

  1. 您是格式不可知论者 - 您可以将数据存储为 HTML、XML、JSON 或其他格式,因为您在存储时没有将自己锁定为单一格式。
  2. 如果您正在搜索这些字段,它会使搜索更容易。
  3. 如果您使用的 Encode 函数存在错误,您最终可能会存储不安全的值。通过在输出点进行编码,您可以将编码器替换为无故障的编码器,或者使用黑名单而不是白名单的编码器,而无需遍历所有数据、提取数据、解码并重新编码。

在文本框的情况下,实际编码取决于文本框的类型 - 单行文本框是属性编码的,多行文本框是 HTML 编码的,并使用 asp.net 文本框控件的文本属性为您编码, 使用正确的方法。

通过存储“原始”HTML,您无需解码,因为控件会自动为您编码,您无需集中处理任何内容。

关于c# - 编码/解码文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6251447/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com