Your site is looking good. Good theme.
In site.master.cs, you can add this to determine what Post is being served. It's intended to work when an individual post is being viewed (i.e. not the homepage).
"post.aspx", StringComparison.OrdinalIgnoreCase) &&
Request.QueryString["id"].Length == 36)
Guid postId = new Guid(Request.QueryString["id"]);
Post postBeingServed = Post.GetPost(postId);
Below is an extension I created (with minimal testing) you could add to the App_Code\Extensions directory. It will not serve the image, and instead return a 403 error if the request is coming from a different site -- i.e. a person adds your image into
their post or HTML page. You'll see that it allows NULL referrers, which is probably okay to do. This logic could be adjusted, but seems to work good.
[Extension("Prevents image leeching", "1.0", "BlogEngine.NET")]
public class ImageLeeching
ImageHandler.Serving += new EventHandler<EventArgs>(ImageHandler_Serving);
private static void ImageHandler_Serving(object sender, EventArgs e)
HttpContext context = HttpContext.Current;
Uri referrer = context.Request.UrlReferrer;
// allowing a NULL referrer, this could be changed.
if (referrer != null &&
context.Response.StatusCode = 403;