#region 防止sql注入式攻击(可用于UI层控制)        /**/
        /// 
        /// 判断字符串中是否有SQL攻击代码
        /// 
        /// 传入用户提交数据
        /// true-安全;false-有注入攻击现有;
        public bool ProcessSqlStr(string inputString)
        {
            string SqlStr = @"1=1|0=0|exec|execute|insert|select|delete|update|alter|create|drop|count|\*|chr|char|asc|mid|substring|master|truncate|declare|xp_cmdshell|restore|backup|net +user|net +localgroup +administrators";
            try
            {
                if ((inputString != null) && (inputString != String.Empty))
                {
                    string str_Regex = @"\b(" + SqlStr + @")\b";                    Regex Regex = new Regex(str_Regex, RegexOptions.IgnoreCase);
                    //string s = Regex.Match(inputString).Value; 
                    if (true == Regex.IsMatch(inputString))
                        return false;                }
            }
            catch
            {                return false;            }
            return true;
        }
        #endregion
 if (ProcessSqlStr(danbie.Text) == false)
            {
                MessageBox.Show("SQL注入攻击!已记录,请不要违规操作!", "警告:");
                textbox1.Text = "";
                textbox1.Focus();
            
            }
问题描述:
    将方法写在当前页面,可以直接调用,但是将方法写在另外一个类当中,再调用 就会报“错误非静态的字段、方法或属性“ERP辅助系统.classL.dfClass.ProcessSqlStr(string)”要求对象引用”。
    我用using 试过了还是不行,是不是 要先将这个类 写成基类,类似DLL 再引用?请教大神帮助!

解决方案 »

  1.   

    ProcessSqlStr是一个类里的成员函数,你要用,就要实例化他的类,除非将ProcessSqlStr作为static函数YourClass yc = new YourClass();
    yc.ProcessSqlStr或者 public static void ProcessSqlStr
      

  2.   

    ProcessSqlStr方法所在的类名假设叫clsSql在其他类这样调用
    clsSql cls=new clsSql();
    if (cls.ProcessSqlStr(danbie.Text) == false)
    ...
      

  3.   

    哇 感谢大家的热情。我再来研究一下 C# 调用 DELPHI DLL。
    谢谢大家!