by Mads Kristensen via .NET Slave on 12/12/2007 6:06:00 PM
My last post about comment spam fighting resulted in a lot of e-mails from readers asking how to create their own spam fighting logic in BlogEngine.NET 1.3. So I decided to show a simple extension that listens for certain bad words and filters on those. If a comment contains one of the predefined words it is considered spam.
[Extension("Filters comments containing bad words", "1.0", "Mads Kristensen")]
public class BadWordFilter
{
// Constructor
public BadWordFilter()
// Add the event handler for the CommentAdded event
Post.AddingComment += new EventHandler<CancelEventArgs>(Post_AddingComment);
}
// The collection of bad words
private static readonly StringCollection BAD_WORDS = AddBadWords();
// Add bad words to the collection
private static StringCollection AddBadWords()
StringCollection col = new StringCollection();
col.Add("VIAGRA");
col.Add("CASINO");
col.Add("MORTAGE");
return col;
// Handle the AddingComment event
private void Post_AddingComment(object sender, CancelEventArgs e)
Comment comment = (Comment)sender;
string body = comment.Content.ToUpperInvariant();
// Search for bad words in the comment body
foreach (string word in BAD_WORDS)
if (body.Contains(word))
// Cancel the comment and raise the SpamAttack event
e.Cancel = true;
Comment.OnSpamAttack();
break;
The problem with an extension that filters based on bad words is that if you have a blog about medicine then Viagra probably isn’t a bad word. Therefore this type of spam fighting is left out of the release, but is offered as a separate download where you are able to define your own bad words.
Download BadWordFilter.zip (743 bytes)
Original Post: Create your own spam filter extensions
The content of the postings is owned by the respective author. CSharpFeeds is not responsible for the contents of the postings. This site is automatically generated and cannot be reviewed for abusive content. If you find abusive content on CSharpFeeds, please contact us. Designated trademarks and brands are the property of their respective owners. All rights reserved.