//没有太多时间完善它了,那位大侠有空完善它一下,完善之后给我一份? (阿山NET a3news(AT)hotmail.com http://www.vcsharp.com)
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.IO; using System.Text; using System.Text.RegularExpressions; using System.Runtime.Remoting; using System.Runtime.Remoting.Proxies; using System.Runtime.Remoting.Messaging; using System.Reflection; using FilterRealProxy;
namespace FilterForm { /// <summary> /// FilterFormTest 的摘要说明。 /// </summary> public class FilterFormTest : System.Windows.Forms.Form { private System.Windows.Forms.Button btnFilter; private System.Windows.Forms.OpenFileDialog openFileDialog1; private System.Windows.Forms.TextBox MyTextBox; private System.Windows.Forms.Button btnOpenFile; private System.Windows.Forms.ListBox listBox1; /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.Container components = null;
public FilterFormTest() { // // Windows 窗体设计器支持所必需的 // InitializeComponent();
// // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // }
/// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); }
#region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.MyTextBox = new System.Windows.Forms.TextBox(); this.btnFilter = new System.Windows.Forms.Button(); this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); this.btnOpenFile = new System.Windows.Forms.Button(); this.listBox1 = new System.Windows.Forms.ListBox(); this.SuspendLayout(); // // MyTextBox // this.MyTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.MyTextBox.Location = new System.Drawing.Point(8, 8); this.MyTextBox.Multiline = true; this.MyTextBox.Name = "MyTextBox"; this.MyTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; this.MyTextBox.Size = new System.Drawing.Size(432, 360); this.MyTextBox.TabIndex = 0; this.MyTextBox.Text = ""; // // btnFilter // this.btnFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.btnFilter.Location = new System.Drawing.Point(448, 232); this.btnFilter.Name = "btnFilter"; this.btnFilter.Size = new System.Drawing.Size(88, 23); this.btnFilter.TabIndex = 1; this.btnFilter.Text = "去除危险字符"; this.btnFilter.Click += new System.EventHandler(this.btnFilter_Click); // // btnOpenFile // this.btnOpenFile.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.btnOpenFile.Location = new System.Drawing.Point(456, 48); this.btnOpenFile.Name = "btnOpenFile"; this.btnOpenFile.TabIndex = 2; this.btnOpenFile.Text = "打开文件"; this.btnOpenFile.Click += new System.EventHandler(this.btnOpenFile_Click); // // listBox1 // this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.listBox1.ItemHeight = 12; this.listBox1.Items.AddRange(new object[] { "Script脚本", "Html代码", "Object物件", "链接脚本", "Iframe内框架", "Frameset框架", "Src插入性脚本", "非法字符", "Include包含文件", "以上所有"}); this.listBox1.Location = new System.Drawing.Point(448, 88); this.listBox1.MultiColumn = true; this.listBox1.Name = "listBox1"; this.listBox1.Size = new System.Drawing.Size(96, 124); this.listBox1.TabIndex = 3; // // FilterFormTest // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(544, 381); this.Controls.Add(this.listBox1); this.Controls.Add(this.btnOpenFile); this.Controls.Add(this.btnFilter); this.Controls.Add(this.MyTextBox); this.Name = "FilterFormTest"; this.Text = "FilterFormTest"; this.ResumeLayout(false);
} #endregion
/// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.Run(new FilterFormTest()); } ///<summary> /// 实体类:该实体类必须从MarshalByRefObject继承,所以被过滤的实体类不能再从其他类继承或实现接口,这是使用透明代理的局限性。 ///</summary> public class Entry : MarshalByRefObject { public Entry() { } public static Entry CreateInstance() { Entry entry=new Entry(); RealProxy realProxy = new FilterRealProxy.FilterRealProxy(entry); object transparentProxy = realProxy.GetTransparentProxy(); return (Entry)transparentProxy; }
private string _body; public virtual string Body { [StringFilter((FilterType)16)] get{return _body;} set{_body = value;} } }
private void btnFilter_Click(object sender, System.EventArgs e) { Entry en=Entry.CreateInstance(); en.Body = MyTextBox.Text; MyTextBox.Text=en.Body; }
private void btnOpenFile_Click(object sender, System.EventArgs e) { OpenFileDialog dlgFile=new OpenFileDialog(); dlgFile.Filter="Html(*.htm)|*.htm|Text(*.txt)|*.txt|All Files(*.*)|*.*"; if(dlgFile.ShowDialog() == DialogResult.OK) { System.IO.StreamReader sr=new System.IO.StreamReader(dlgFile.FileName,System.Text.Encoding.Default);//得到一个含有script脚本的字符串 MyTextBox.Text = sr.ReadToEnd(); sr.Close(); } }
private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e) { } } } 
|