gpt4 book ai didi

c# - 与数据绑定(bind)转发器控件一起使用时如何清理查询字符串?

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

给定以下 URL:

domain.com/page.aspx?id=123

当查询字符串值用于数据绑定(bind)控件(例如转发器 SqlDataSource)时,我如何清理该查询字符串值?

<asp:SqlDataSource ID="projectDataSource" runat="server" 
ConnectionString="MyConnectionStrings"
SelectCommand="select foo from bar">
<SelectParameters>
<asp:QueryStringParameter
DefaultValue="0"
Name="idfromqs"
QueryStringField="id"
Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>

?id=asdf 不会导致错误?

这些类似的问题都有很好的答案,但似乎都不太符合我的问题

注意:这是一个内部应用程序,仅限于一小块本地 IP 地址。我不太担心恶意 sql 注入(inject),而更担心防止不那么精明的用户看到令人讨厌的错误消息。

最佳答案

您可以使用 SQLDataSourceSelecting 事件,您可以在其中检查查询字符串值。此事件在调用 Select 方法之前触发。

protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
SqlDataSource1.SelectParameters.Clear(); //Clear existing parameters
// based on your check, you can pass the default value
SqlDataSource1.SelectParameters["idfromqs"].DefaultValue = "Set Value here";

}

关于c# - 与数据绑定(bind)转发器控件一起使用时如何清理查询字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7000242/

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