Twój problem nie dotyczy tylko ASP .NET, a tak na prawdę każdej aplikacji web-owej. Tak po prostu działają przeglądarki, że w momencie naciśnięcia przycisku Refresh, powtarzane są czynności, które wykonywałeś przed jego naciśnięciem. Zabezpieczyć się można na kilka sposób. Całkiem ładnie zostało to opisane na tej stronie http://aspalliance.com/687_Preventing_Duplicate_Record_Insertion_on_Page_Refresh.all.