无法使用HtmlEncode AntiXSS从'System.Web.UI.HtmlControls.HtmlInputText'转换为'string'

时间:2015-11-08 13:23:38

标签: c# asp.net xss antixsslibrary

假设我希望使用antiXSS在针对XSS的项目的用户控件中编码<input>标记。

searchbox.ascx

<input id="searchBox" type="text" class="QueryBox" runat="server" />

searchbox.ascx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.Security.Application;

namespace Project2015.Website.layout.search
{
    public partial class searchbox : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            searchBox = Encoder.HtmlEncode(searchBox);
        }


    }
}

当我尝试编译代码时,我收到此错误

  

错误108参数1:无法转换   'System.Web.UI.HtmlControls.HtmlInputText'到'string'

     

错误107最佳重载方法匹配   'Microsoft.Security.Application.Encoder.HtmlEncode(string)'有一些   无效的参数

看不出我在这里做错了什么。

1 个答案:

答案 0 :(得分:0)

搜索框是HTML控件。在encode中使用text属性。

searchBox.Text = Encoder.HtmlEncode(searchBox.Text);

或者你可以直接在aspx文件中使用encode。

我建议最好为编码创建辅助函数并在代码中使用辅助函数。如果您想要应用某些条件,稍后可以更容易地进行自定义。