<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnetfreak.co.uk/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Kevin Gearing&amp;#39;s Blog : Controls, ASP.NET</title><link>http://dotnetfreak.co.uk/blog/archive/tags/Controls/ASP.NET/default.aspx</link><description>Tags: Controls, ASP.NET</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP2 (Build: 20611.960)</generator><item><title>FormShield v2.0.1 Released</title><link>http://dotnetfreak.co.uk/blog/archive/2007/07/17/formshield-v2-0-1-released.aspx</link><pubDate>Tue, 17 Jul 2007 08:28:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:1627</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>8</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=1627</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=1627</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2007/07/17/formshield-v2-0-1-released.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;FormShield&amp;nbsp;v2.0.1 has been released. Click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2007/07/13/formshield-for-net-2-0-released.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2007/07/13/formshield-for-net-2-0-released.aspx"&gt;&lt;FONT color=#666666&gt;here&lt;/FONT&gt;&lt;/A&gt; for details.&lt;/P&gt;&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=1627" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>FormShield for .NET 2.0 Released</title><link>http://dotnetfreak.co.uk/blog/archive/2007/07/13/formshield-for-net-2-0-released.aspx</link><pubDate>Fri, 13 Jul 2007 09:02:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:1555</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>26</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=1555</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=1555</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2007/07/13/formshield-for-net-2-0-released.aspx#comments</comments><description>&lt;P&gt;FormShield started out as a simple project with just one aim - to prevent automated form submission using dynamically generated images.&lt;/P&gt;
&lt;P&gt;Not exactly a new idea - dynamically generated images requiring the user to enter the text found on the image have been around for quite a while, preventing automated sign-ups to free e-mail services such as HotMail and Yahoo, and automated whois lookups on domain names on sites such as Network Solutions.&lt;/P&gt;
&lt;P&gt;Whilst some code exists on Code Project, there didn't however seem to be a free, easy-to-use and customisable control for ASP.NET with full designer integration that could generate the relevant images. So,&amp;nbsp;looking for an excuse to delve into GDI+, FormShield was born and my idea of a 'simple' control was dropped...&lt;/P&gt;
&lt;P&gt;... That was&amp;nbsp;2004 and this is now...&lt;/P&gt;
&lt;P&gt;Version 2 of FormShield builds on the previous .NET 1.1 version, adding a wealth of new features, options and accessibility improvements. The most notable feature addition is the capability for FormShield to now automatically generate a spoken version of the value shown on the image to aid with accessibility legal compliance. This however is just one of a handful of major new features, not to mention the number of&amp;nbsp;improvements and changes made since the previous version.&lt;/P&gt;
&lt;P&gt;However, whilst a lot has changed, FormShield remains true to its original goals - to be 'easy-to-use', 'customisable' and to have 'full designer integration'.&lt;/P&gt;
&lt;P&gt;No other .NET captcha control currently on the market has the number of features of FormShield, but more importantly, none of them are as customisable or have such a rich design-time experience when used in Visual Studio.&lt;/P&gt;
&lt;P mce_keep="true"&gt;For more information, check out &lt;A class="" href="http://dotnetfreak.co.uk/forums/t/63.aspx" mce_href="http://dotnetfreak.co.uk/forums/t/63.aspx"&gt;What's New in Version 2.0&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;BR&gt;&lt;FONT size=3&gt;Features:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Generates BMP, GIF, JPEG or PNG images. 
&lt;LI&gt;Choose the pixel format and smoothing mode used to&amp;nbsp;render the image. 
&lt;LI&gt;Set the height and width of the image as well as the alternate text displayed. 
&lt;LI&gt;Image is built using&amp;nbsp;3 layers - Background, foreground and noise. 
&lt;LI&gt;Provides&amp;nbsp;5 fill styles,&amp;nbsp;5 gradient styles, 54 hatch styles and 2 colors for each layer. 
&lt;LI&gt;Set the length (static or random&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;) and case (lower, mixed or upper) of the automatically generated text. 
&lt;LI&gt;Ability to set your own text for FormShield to use and the ability to regenerate or automatically change it on postback&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;. 
&lt;LI&gt;Choose the type of characters you want to use to generate the text (alpha, numeric, symbols, a combination, or random). 
&lt;LI&gt;Choose the fonts (when using a font based text effect) you want to use to draw the text (26 as default) as well as the font style (5&amp;nbsp;combinable styles, 17 in total). 
&lt;LI&gt;Choose the default, static&amp;nbsp;font to use to draw the text when not using a font based text effect&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;. 
&lt;LI&gt;Pick a text effect (5 combinable effects, 25 in total) and decrease the noise level to decrease readability. 
&lt;LI&gt;Draw&amp;nbsp;a border around the image using one of&amp;nbsp;5 styles and your choice of color and width. 
&lt;LI&gt;Randomise the fill style, gradient style, hatch style, font style, text case, character type, text effect and&amp;nbsp;border style. 
&lt;LI&gt;6 Presets included; Default, Fire, Forest, Sand, Sea and ChessBoard. 
&lt;LI&gt;Supports&amp;nbsp;4 persistent methods; ViewState, ControlState&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;, SessionState or&amp;nbsp;HiddenField - ideal if ViewState and/or SessionState aren't available to persist property values on postback. 
&lt;LI&gt;Values stored using any of the persistent methods are automatically encrypted for additional security (128 bit encryption&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;) with the ability to add your own key to the web.config file&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;. 
&lt;LI&gt;ValidFrom and ExpiresAfter&amp;nbsp;properties to&amp;nbsp;set how many seconds have to pass before the image is valid and how many seconds after which the image&amp;nbsp;has expired&lt;FONT color=#ff0000&gt;* &lt;/FONT&gt;&lt;FONT color=#000000&gt;- Prevent replay attacks.&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;ImageClick event raised when someone clicks on the image (supports Regenerate to generate a new value, BubbleEvent to bubble the event for custom handling or both)&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;. 
&lt;LI&gt;Full embedded sound support (2 voices as standard, 8bit or 16bit and 8kHz or 16kHz - all selectable) - Will prompt to download the audio file if no plugin is installed.&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt; 
&lt;LI&gt;SoundLibraries distributed seperately so you only need to copy the one you require to your bin directory.&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt; 
&lt;LI&gt;Three additional icons rendered with customisable properties (AlternateText, Height, Width, IconUrl, Visible). Renders default icons if IconUrl is empty.&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt; 
&lt;LI&gt;Refresh icon to automatically regenerate the text value (can also raise an event for custom handling), Sound icon for built in audio playback and Help icon with customisable DestinationUrl property.&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt; 
&lt;LI&gt;Image and sound is rendered on demand (via an HttpHandler&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;), not saved as a file and audio files support caching (with an encrypted filename)&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;. 
&lt;LI&gt;Encrypts the querystring (128 bit&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;)&lt;FONT color=#ff0000&gt; &lt;/FONT&gt;to prevent deciphering by reading the HTML source. 
&lt;LI&gt;Works with existing ASP.NET validation controls as well as &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2007/06/05/stringcomparevalidator-for-net-2-0-released.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2007/06/05/stringcomparevalidator-for-net-2-0-released.aspx"&gt;&lt;FONT color=#666666&gt;StringCompareValidator&lt;/FONT&gt;&lt;/A&gt;. 
&lt;LI&gt;Can be used on standalone WebForms as well as UserControls. 
&lt;LI&gt;Supports Community Server 2007&lt;FONT color=#ff0000&gt;* &lt;/FONT&gt;and .Text Blogging Engine to prevent spam on blogs. 
&lt;LI&gt;Tested in IE6 &amp;amp; IE7&amp;nbsp;(PC), IE5 (Mac), FireFox 2 (PC &amp;amp; Mac), Safari 2 (Mac), Safari 3 (PC), Opera 9 (PC)&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Full, rich,&amp;nbsp;Visual Studio .NET designer integration, including&amp;nbsp;rendering whilst in design mode and menu options to automatically add configuration settings to the web.config file.&lt;/LI&gt;
&lt;LI&gt;Works in a 'ViewState Disabled' environment.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Compatible with Medium Trust environments&lt;FONT color=#ff0000&gt;*&lt;/FONT&gt;.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;*&amp;nbsp;New in Version 2.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A class="" href="http://www.dotnetfreak.co.uk/demos/formshield/" target=_blank mce_href="http://www.dotnetfreak.co.uk/demos/formshield/"&gt;&lt;FONT color=#666666&gt;Simple Online Demo&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;(also see the comments section&amp;nbsp;below)&lt;BR&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Screenshots:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 279px; HEIGHT: 68px" height=68 src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot2-1.png" width=279 mce_src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot2-1.png"&gt;&amp;nbsp;&lt;IMG style="WIDTH: 279px; HEIGHT: 68px" height=68 src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot2-2.png" width=279 mce_src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot2-2.png"&gt;&amp;nbsp;&lt;IMG style="WIDTH: 279px; HEIGHT: 68px" height=68 src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot2-3.png" width=279 mce_src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot2-3.png"&gt;&amp;nbsp;&lt;IMG style="WIDTH: 279px; HEIGHT: 68px" height=68 src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot2-4.png" width=279 mce_src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot2-4.png"&gt;&amp;nbsp;&lt;IMG style="WIDTH: 279px; HEIGHT: 68px" height=68 src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot2-5.png" width=279 mce_src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot2-5.png"&gt;&amp;nbsp;&lt;IMG style="WIDTH: 279px; HEIGHT: 68px" height=68 src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot2-6.png" width=279 mce_src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot2-6.png"&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Design Time:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 446px; HEIGHT: 234px" height=234 src="http://dotnetfreak.co.uk/images/blog/formshield/designtime-1.png" width=446 mce_src="http://dotnetfreak.co.uk/images/blog/formshield/designtime-1.png"&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Properties Screenshot &lt;A href="http://dotnetfreak.co.uk/images/blog/formshield/designtime-properties-1.png" target=_blank mce_href="http://dotnetfreak.co.uk/images/blog/formshield/designtime-properties-1.png"&gt;1&lt;/A&gt; | &lt;A class="" href="http://dotnetfreak.co.uk/images/blog/formshield/designtime-properties-2.png" target=_blank mce_href="http://dotnetfreak.co.uk/images/blog/formshield/designtime-properties-2.png"&gt;2&lt;/A&gt; | &lt;A class="" href="http://dotnetfreak.co.uk/images/blog/formshield/designtime-properties-3.png" target=_blank mce_href="http://dotnetfreak.co.uk/images/blog/formshield/designtime-properties-3.png"&gt;3&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;&lt;BR&gt;Visual Studio .NET Design Time Notes:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;To get the image to appear when you first drag 'n' drop FormShield&amp;nbsp;to your page, right click on the control and select both 'Add Secret Key' and 'Add HttpHandler', then save the file and right click on a blank space on the page and click 'Refresh'. If that doesn't work, hit the page in a Web browser and repeat the refresh process. You may also need to open, save and close the web.config file. &lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;On occasion the image doesn't reflect property changes made within the property grid. This seems to be either an issue with Visual Studio, or caching. The easiest way to solve the problem (if it happens in the first place) is to save the file and to repeat the refresh process described above. If you are changing image design&amp;nbsp;properties you can also try placing your mouse cursor into the relevant dropdown list and&amp;nbsp;use the cursor keys to navigate through the options.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;BR&gt;&lt;FONT size=3&gt;Usage:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Simply download, add to your toolbox, drag 'n' drop to your page and set the relevant properties using the property grid.&lt;/P&gt;
&lt;P&gt;To combine with a validation control (e.g. &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2007/06/05/stringcomparevalidator-for-net-2-0-released.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2007/06/05/stringcomparevalidator-for-net-2-0-released.aspx"&gt;&lt;FONT color=#666666&gt;StringCompareValidator&lt;/FONT&gt;&lt;/A&gt;), add the validation control as well as a TextBox to your page, set the StringCompareValidator's 'ControlToCompare' property to point to the&amp;nbsp;FormShield control and the 'ControlToValidate' property to point to the&amp;nbsp;TextBox control. You will also need to set 'EnableClientScript' to False on the validator if 'EncryptQueryString' is set to True on the FormShield control.&lt;/P&gt;
&lt;P&gt;To change the HttpHandler name/path, update your web.config file and change the HttpHandlerPath property value to point to the new handler.&lt;/P&gt;
&lt;P&gt;To specify your own secret key for encryption, add/change the 'formShield_SecretKey' AppSetting in the web.config file.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;BR&gt;&lt;FONT size=3&gt;Licensing &amp;amp; Download:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;FormShield v2 is released as 'Donationware', for more information, please click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2007/07/13/formshield-and-donationware.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2007/07/13/formshield-and-donationware.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;However - You don't &lt;U&gt;have&lt;/U&gt; to donate unless you want to - FormShield can still be used for free for both personal and commercial use, however it will periodically (about 10% of the time) render 'dotNetFreak.co.uk' as the image text and will play 'This control is provided by &lt;A class=""&gt;www.dotnetfreak.co.uk'&lt;/A&gt; before the text value when someone clicks on the sound icon (again, about 10% of the time).&lt;/P&gt;
&lt;P&gt;If you do decide to donate (thank you!), you will be e-mailed a license key as soon as possible with instructions on how to add it to FormShield so that it removes the 'dotNetFreak.co.uk' adverts.&lt;/P&gt;
&lt;P&gt;Whether you have donated or not, you may also redistribute the control royalty free, providing that you don't charge for it.&amp;nbsp;Also, if you intend to distribute the control as part of&amp;nbsp;an application which is &lt;U&gt;publicly&lt;/U&gt; available it would be nice to know, although this isn't a requirement.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Got a good image design? Drop me a line using the &lt;A class="" href="http://dotnetfreak.co.uk/blog/contact.aspx" mce_href="http://dotnetfreak.co.uk/blog/contact.aspx"&gt;&lt;FONT color=#666666&gt;contact&lt;/FONT&gt;&lt;/A&gt; link and I'll look to include it as a preset.&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;To download, please visit the '&lt;A class="" href="http://dotnetfreak.co.uk/files/folders/formshield/default.aspx" mce_href="http://dotnetfreak.co.uk/files/folders/formshield/default.aspx"&gt;&lt;FONT color=#666666&gt;Downloads&lt;/FONT&gt;&lt;/A&gt;' area.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;business=dotnetfreak%40gmail%2ecom&amp;amp;item_name=dotNetFreak%20%2eNET%20Control%20Donations&amp;amp;no_shipping=1&amp;amp;cn=Comments&amp;amp;tax=0&amp;amp;currency_code=GBP&amp;amp;lc=GB&amp;amp;bn=PP%2dDonationsBF&amp;amp;charset=UTF%2d8" mce_href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;business=dotnetfreak%40gmail%2ecom&amp;amp;item_name=dotNetFreak%20%2eNET%20Control%20Donations&amp;amp;no_shipping=1&amp;amp;cn=Comments&amp;amp;tax=0&amp;amp;currency_code=GBP&amp;amp;lc=GB&amp;amp;bn=PP%2dDonationsBF&amp;amp;charset=UTF%2d8"&gt;&lt;IMG src="http://www.paypal.com/en_US/i/btn/x-click-but04.gif" border=0 mce_src="http://www.paypal.com/en_US/i/btn/x-click-but04.gif"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Help &amp;amp; Support:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Please post in the &lt;A class="" href="http://dotnetfreak.co.uk/forums/12.aspx" mce_href="http://dotnetfreak.co.uk/forums/12.aspx"&gt;forum&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;&lt;FONT color=#000000 size=3&gt;Revision History:&lt;/FONT&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000&gt; 
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 17/07/2007 (v2.0.1):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;&lt;FONT color=#000000&gt;
&lt;LI&gt;AddUpperLower property added to enable/disable the adding of 'Uppercase' or 'Lowercase' before each character when the sound is played. 
&lt;LI&gt;MultiView design-time issue ('control collection cannot be modified during databind...') - Fixed.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;To use this version you will also need to download v1.0.1 of the Sound Libraries.&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 13/07/2007 (v2.0.0):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;Click&amp;nbsp;&lt;A class="" href="http://dotnetfreak.co.uk/forums/t/63.aspx" mce_href="http://dotnetfreak.co.uk/forums/t/63.aspx"&gt;here&lt;/A&gt; for the changes in this version.&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;For the previous .NET 1.1 version, please click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx"&gt;&lt;FONT color=#666666&gt;here&lt;/FONT&gt;&lt;/A&gt;.&lt;/P&gt;&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=1555" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>StringCompareValidator v2.0.2 Released</title><link>http://dotnetfreak.co.uk/blog/archive/2007/07/11/stringcomparevalidator-v2-0-2-released.aspx</link><pubDate>Wed, 11 Jul 2007 13:16:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:1536</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=1536</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=1536</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2007/07/11/stringcomparevalidator-v2-0-2-released.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;StringCompareValidator&amp;nbsp;v2.0.2 has been released. Click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2007/06/05/stringcomparevalidator-for-net-2-0-released.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2007/06/05/stringcomparevalidator-for-net-2-0-released.aspx"&gt;&lt;FONT color=#666666&gt;here&lt;/FONT&gt;&lt;/A&gt; for details.&lt;/P&gt;&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=1536" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>CasedTextBox v2.0.2 Released</title><link>http://dotnetfreak.co.uk/blog/archive/2007/07/11/casedtextbox-v2-0-2-released.aspx</link><pubDate>Wed, 11 Jul 2007 10:16:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:1530</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=1530</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=1530</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2007/07/11/casedtextbox-v2-0-2-released.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;CasedTextBox v2.0.2 has been released. Click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2007/06/05/casedtextbox-for-net-2-0-released.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2007/06/05/casedtextbox-for-net-2-0-released.aspx"&gt;&lt;FONT color=#666666&gt;here&lt;/FONT&gt;&lt;/A&gt; for details.&lt;/P&gt;&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=1530" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>StringCompareValidator v2.0.1 Released</title><link>http://dotnetfreak.co.uk/blog/archive/2007/06/07/stringcomparevalidator-v2-0-1-released.aspx</link><pubDate>Thu, 07 Jun 2007 16:23:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:1409</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=1409</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=1409</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2007/06/07/stringcomparevalidator-v2-0-1-released.aspx#comments</comments><description>StringCompareValidator&amp;nbsp;v2.0.1 has been released. Click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2007/06/05/stringcomparevalidator-for-net-2-0-released.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2007/06/05/stringcomparevalidator-for-net-2-0-released.aspx"&gt;here&lt;/A&gt; for details.&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=1409" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>CasedTextBox v2.0.1 Released</title><link>http://dotnetfreak.co.uk/blog/archive/2007/06/07/casedtextbox-v2-0-1-released.aspx</link><pubDate>Thu, 07 Jun 2007 16:22:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:1408</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=1408</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=1408</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2007/06/07/casedtextbox-v2-0-1-released.aspx#comments</comments><description>CasedTextBox v2.0.1 has been released. Click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2007/06/05/casedtextbox-for-net-2-0-released.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2007/06/05/casedtextbox-for-net-2-0-released.aspx"&gt;here&lt;/A&gt; for details.&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=1408" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>StringCompareValidator for .NET 2.0 Released</title><link>http://dotnetfreak.co.uk/blog/archive/2007/06/05/stringcomparevalidator-for-net-2-0-released.aspx</link><pubDate>Tue, 05 Jun 2007 15:29:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:1496</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=1496</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=1496</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2007/06/05/stringcomparevalidator-for-net-2-0-released.aspx#comments</comments><description>&lt;P mce_keep="true"&gt;If like me you've made use of the standard CompareValidator you'll know that it lacks one important feature for comparing strings - Case sensitivity. Whilst working on another control I needed a compare validator that had this capability, so I've created my own custom control - StringCompareValidator.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Features:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;CaseSensitive property to allow case-sensitive or case-insensitive comparisons. 
&lt;LI&gt;CompareOperator property to allow equal or not equal comparisons. 
&lt;LI&gt;Provides&amp;nbsp;client-side and server-side validation. 
&lt;LI&gt;Tested in IE6 &amp;amp; IE7&amp;nbsp;(PC), IE5 (Mac), FireFox 2 (PC &amp;amp; Mac), Safari 2 (Mac), Safari 3 (PC), Opera 9 (PC).&amp;nbsp; 
&lt;LI&gt;Full Visual Studio .NET designer integration. 
&lt;LI&gt;Works in a 'ViewState Disabled' environment.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Compatible with Medium Trust environments.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A class="" href="http://www.dotnetfreak.co.uk/demos/stringcomparevalidator/" target=_blank mce_href="http://www.dotnetfreak.co.uk/demos/stringcomparevalidator/"&gt;&lt;FONT color=#666666&gt;Simple Online Demo&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Usage:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Simply download, add to your toolbox, drag 'n' drop to your page and set the relevant properties using the property grid.&lt;/P&gt;&lt;STRONG&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;BR&gt;&lt;/STRONG&gt;&lt;FONT size=3&gt;Licensing &amp;amp; Download:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Free for both personal and commercial use, however please consider donating!&lt;/P&gt;
&lt;P&gt;You may also redistribute the control royalty free, providing that you don't charge for it.&amp;nbsp;Also, if you intend to distribute the control as part of&amp;nbsp;an application which is &lt;U&gt;publicly&lt;/U&gt; available it would be nice to know, although this isn't a requirement.&lt;/P&gt;
&lt;P mce_keep="true"&gt;To download, please visit the '&lt;A class="" href="http://dotnetfreak.co.uk/files/folders/stringcomparevalidator/default.aspx" mce_href="http://dotnetfreak.co.uk/files/folders/stringcomparevalidator/default.aspx"&gt;&lt;FONT color=#666666&gt;Downloads&lt;/FONT&gt;&lt;/A&gt;' area.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;business=dotnetfreak%40gmail%2ecom&amp;amp;item_name=dotNetFreak%20%2eNET%20Control%20Donations&amp;amp;no_shipping=1&amp;amp;cn=Comments&amp;amp;tax=0&amp;amp;currency_code=GBP&amp;amp;lc=GB&amp;amp;bn=PP%2dDonationsBF&amp;amp;charset=UTF%2d8" mce_href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;business=dotnetfreak%40gmail%2ecom&amp;amp;item_name=dotNetFreak%20%2eNET%20Control%20Donations&amp;amp;no_shipping=1&amp;amp;cn=Comments&amp;amp;tax=0&amp;amp;currency_code=GBP&amp;amp;lc=GB&amp;amp;bn=PP%2dDonationsBF&amp;amp;charset=UTF%2d8"&gt;&lt;IMG src="http://www.paypal.com/en_US/i/btn/x-click-but04.gif" border=0 mce_src="http://www.paypal.com/en_US/i/btn/x-click-but04.gif"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;BR&gt;&lt;FONT size=3&gt;Help &amp;amp; Support:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Please post in the &lt;A class="" href="http://dotnetfreak.co.uk/forums/12.aspx" mce_href="http://dotnetfreak.co.uk/forums/12.aspx"&gt;forum&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;&lt;FONT color=#000000 size=3&gt;Revision History:&lt;/FONT&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 11/07/2007 (v2.0.2):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;&lt;FONT color=#000000&gt;
&lt;LI&gt;JavaScript is now embedded as an include rather than outputted into the Web page. 
&lt;LI&gt;ViewState is no longer used to persist property values so the control works in a ViewState disabled environment.&lt;/LI&gt;&lt;/FONT&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 07/06/2007 (v2.0.1):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#000000&gt;Few minor code tweaks.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#000000&gt;Added demo page to archive.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 05/06/2007 (v2.0.0):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000&gt;&lt;FONT color=#000000&gt; 
&lt;UL&gt;
&lt;LI&gt;Recompiled under .NET 2.0. 
&lt;LI&gt;Now runs in a medium trust environment. 
&lt;LI&gt;Help now compiled with Sandcastle.&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;For the previous .NET 1.1 version, please click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2004/10/30/new-control-stringcomparevalidator-provides-case-sensitive-comparisons.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2004/10/30/new-control-stringcomparevalidator-provides-case-sensitive-comparisons.aspx"&gt;&lt;FONT color=#666666&gt;here&lt;/FONT&gt;&lt;/A&gt;.&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=1496" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>CasedTextBox for .NET 2.0 Released</title><link>http://dotnetfreak.co.uk/blog/archive/2007/06/05/casedtextbox-for-net-2-0-released.aspx</link><pubDate>Tue, 05 Jun 2007 13:14:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:1491</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=1491</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=1491</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2007/06/05/casedtextbox-for-net-2-0-released.aspx#comments</comments><description>&lt;P&gt;Unlike Windows Forms.NET, ASP.NET textbox controls seem to be missing the 'Character Casing' property which allows you to define the case of characters entered within a textbox.&lt;/P&gt;
&lt;P&gt;Whilst it's fairly easy to replicate by hooking up some JavaScript&amp;nbsp;to the&amp;nbsp;'onblur&amp;nbsp;event', e.g.&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New"&gt;txtEMailAddress.Attributes.Add("onblur", "this.value = this.value.toLowerCase();");&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;it becomes a bit of a pain having to enter this on every page. So, below is a&amp;nbsp;simple ASP.NET control that basically does it for you. It simply inherits from the standard TextBox class and adds a new 'Character Casing' property allowing you to set the character case to one of&amp;nbsp;three options:&lt;BR&gt;&lt;STRONG&gt;&lt;BR&gt;&lt;BR&gt;&lt;FONT size=3&gt;Features:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;CharacterCasing property to set the case to upper (all characters uppercase), upper first (only the first character uppercase) or lower (all characters lowercase). 
&lt;LI&gt;Tested in IE6 &amp;amp; IE7&amp;nbsp;(PC), IE5 (Mac), FireFox 2 (PC &amp;amp; Mac), Safari 2 (Mac), Safari 3 (PC), Opera 9 (PC). 
&lt;LI&gt;Full Visual Studio .NET designer integration. 
&lt;LI&gt;Works in a 'ViewState Disabled' environment.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Compatible with Medium Trust environments.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;A class="" href="http://www.dotnetfreak.co.uk/demos/casedtextbox/" target=_blank mce_href="http://www.dotnetfreak.co.uk/demos/casedtextbox/"&gt;Simple Online Demo&lt;/A&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;BR&gt;&lt;FONT size=3&gt;Usage:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Simply download, add to your toolbox, drag 'n' drop to your page and set the property using the property grid.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Licensing &amp;amp; Download:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Free for both personal and commercial use, however please consider donating!&lt;/P&gt;
&lt;P&gt;You may also redistribute the control royalty free, providing that you don't charge for it.&amp;nbsp;Also, if you intend to distribute the control as part of&amp;nbsp;an application which is &lt;U&gt;publicly&lt;/U&gt; available it would be nice to know, although this isn't a requirement.&lt;/P&gt;
&lt;P mce_keep="true"&gt;To download, please visit the '&lt;A class="" href="http://dotnetfreak.co.uk/files/folders/casedtextbox/default.aspx" mce_href="http://dotnetfreak.co.uk/files/folders/casedtextbox/default.aspx"&gt;Downloads&lt;/A&gt;' area.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;business=dotnetfreak%40gmail%2ecom&amp;amp;item_name=dotNetFreak%20%2eNET%20Control%20Donations&amp;amp;no_shipping=1&amp;amp;cn=Comments&amp;amp;tax=0&amp;amp;currency_code=GBP&amp;amp;lc=GB&amp;amp;bn=PP%2dDonationsBF&amp;amp;charset=UTF%2d8" mce_href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;business=dotnetfreak%40gmail%2ecom&amp;amp;item_name=dotNetFreak%20%2eNET%20Control%20Donations&amp;amp;no_shipping=1&amp;amp;cn=Comments&amp;amp;tax=0&amp;amp;currency_code=GBP&amp;amp;lc=GB&amp;amp;bn=PP%2dDonationsBF&amp;amp;charset=UTF%2d8"&gt;&lt;IMG src="http://www.paypal.com/en_US/i/btn/x-click-but04.gif" border=0 mce_src="http://www.paypal.com/en_US/i/btn/x-click-but04.gif"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;BR&gt;&lt;FONT size=3&gt;Help &amp;amp; Support:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Please post in the &lt;A class="" href="http://dotnetfreak.co.uk/forums/12.aspx" mce_href="http://dotnetfreak.co.uk/forums/12.aspx"&gt;forum&lt;/A&gt;.&lt;/P&gt;&lt;A href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;business=dotnetfreak%40gmail%2ecom&amp;amp;item_name=dotNetFreak%20%2eNET%20Control%20Donations&amp;amp;no_shipping=1&amp;amp;cn=Comments&amp;amp;tax=0&amp;amp;currency_code=GBP&amp;amp;lc=GB&amp;amp;bn=PP%2dDonationsBF&amp;amp;charset=UTF%2d8" mce_href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;business=dotnetfreak%40gmail%2ecom&amp;amp;item_name=dotNetFreak%20%2eNET%20Control%20Donations&amp;amp;no_shipping=1&amp;amp;cn=Comments&amp;amp;tax=0&amp;amp;currency_code=GBP&amp;amp;lc=GB&amp;amp;bn=PP%2dDonationsBF&amp;amp;charset=UTF%2d8"&gt;&lt;/A&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;&lt;FONT color=#000000 size=3&gt;Revision History:&lt;/FONT&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 11/07/2007 (v2.0.2):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#000000&gt;Control failed to change the character case in some browsers - Fixed.&lt;/FONT&gt; 
&lt;LI&gt;JavaScript is now embedded as an include rather than outputted into the Web page. 
&lt;LI&gt;ViewState is no longer used to persist property values so the control works in a ViewState disabled environment.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 07/06/2007 (v2.0.1):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;FONT color=#000000&gt;UpperFirst now converts the first character of every word to uppercase (ideal for addresses).&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#000000&gt;Few minor code tweaks.&lt;/FONT&gt; 
&lt;LI&gt;&lt;FONT color=#000000&gt;Added demo page to archive.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 05/06/2007 (v2.0.0):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000&gt;&lt;FONT color=#000000&gt; 
&lt;UL&gt;
&lt;LI&gt;Recompiled for .NET 2.0. 
&lt;LI&gt;Now runs in a medium trust environment. 
&lt;LI&gt;Help now compiled with Sandcastle.&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;For the previous .NET 1.1 version, please click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2004/07/04/new-control-casedtextbox-sets-textbox-character-case.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2004/07/04/new-control-casedtextbox-sets-textbox-character-case.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=1491" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>FormShield v1.1.2 Released</title><link>http://dotnetfreak.co.uk/blog/archive/2005/06/28/formshield-v1-1-2-released.aspx</link><pubDate>Tue, 28 Jun 2005 17:25:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:757</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=757</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=757</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2005/06/28/formshield-v1-1-2-released.aspx#comments</comments><description>FormShield v1.1.2 has been released. Click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx"&gt;here&lt;/A&gt; for details.&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=757" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>FormShield v1.1.1 Released</title><link>http://dotnetfreak.co.uk/blog/archive/2005/06/01/formshield-v1-1-1-released.aspx</link><pubDate>Wed, 01 Jun 2005 14:44:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:634</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=634</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=634</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2005/06/01/formshield-v1-1-1-released.aspx#comments</comments><description>FormShield v1.1.1 has been released. Click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx"&gt;here&lt;/A&gt; for details.&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=634" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>FormShield v1.1.0 Released</title><link>http://dotnetfreak.co.uk/blog/archive/2005/05/18/formshield-v1-1-0-released.aspx</link><pubDate>Wed, 18 May 2005 10:34:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:618</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=618</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=618</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2005/05/18/formshield-v1-1-0-released.aspx#comments</comments><description>FormShield v1.1.0 has been released. Click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx"&gt;here&lt;/A&gt; for details.&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=618" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>FormShield v1.0.2 Released</title><link>http://dotnetfreak.co.uk/blog/archive/2005/01/06/formshield-v1-0-2-released.aspx</link><pubDate>Thu, 06 Jan 2005 11:04:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:178</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=178</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=178</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2005/01/06/formshield-v1-0-2-released.aspx#comments</comments><description>&lt;P&gt;FormShield v1.0.2 has been released. Click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx"&gt;here&lt;/A&gt; for details.&lt;/P&gt;&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=178" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>FormShield v1.0.1 Released</title><link>http://dotnetfreak.co.uk/blog/archive/2004/11/22/formshield-v1-0-1-released.aspx</link><pubDate>Mon, 22 Nov 2004 17:08:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:171</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=171</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=171</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2004/11/22/formshield-v1-0-1-released.aspx#comments</comments><description>&lt;P&gt;FormShield v1.0.1 has been released. Click &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx"&gt;here&lt;/A&gt; for details.&lt;/P&gt;&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=171" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>New Control - FormShield - Dynamically Generates CAPTCHA™ Style Images</title><link>http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx</link><pubDate>Sat, 06 Nov 2004 18:41:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:166</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>125</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=166</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=166</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2004/11/06/new-control-formshield-dynamically-generates-captcha-style-images.aspx#comments</comments><description>&lt;P&gt;FormShield started out as a simple project with just one aim - to prevent automated form submission using dynamically generated images.&lt;/P&gt;
&lt;P&gt;Not exactly a new idea - dynamically generated images requiring the user to enter the text found on the image have been around for quite a while (see &lt;A href="http://www.captcha.net/" mce_href="http://www.captcha.net/"&gt;http://www.captcha.net/&lt;/A&gt;), preventing automated sign-ups to free e-mail services such as HotMail and Yahoo, and automated whois lookups on domain names on sites such as Network Solutions.&lt;/P&gt;
&lt;P&gt;Whilst some code exists on Code Project (&lt;A href="http://www.codeproject.com/aspnet/CaptchaImage.asp" mce_href="http://www.codeproject.com/aspnet/CaptchaImage.asp"&gt;http://www.codeproject.com/aspnet/CaptchaImage.asp&lt;/A&gt;), there didn't however seem to be a free, easy-to-use and customisable control for ASP.NET with full designer integration that could generate the relevant images. So,&amp;nbsp;looking for an excuse to delve into GDI+, FormShield was born and my idea of a 'simple' control was dropped...&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Features:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Generates BMP, GIF, JPEG, PNG or TIFF images. 
&lt;LI&gt;Choose the pixel format and smoothing mode used to&amp;nbsp;render the image. 
&lt;LI&gt;Set the height, width and alignment of the image as well as the alternate text displayed. 
&lt;LI&gt;Image is built using&amp;nbsp;3 layers - Background, foreground and noise. 
&lt;LI&gt;Provides&amp;nbsp;6 fill styles,&amp;nbsp;4 gradient styles, 53 hatch styles and 2 colors for each layer. 
&lt;LI&gt;Set the length and case (lower, mixed or upper) of the automatically generated text. 
&lt;LI&gt;Choose the type of characters you want to use to generate the text (alpha, numeric, symbols or a combination). 
&lt;LI&gt;Choose the fonts you want to use to draw the text as well as the font style (4&amp;nbsp;combinable styles, 16 in total). 
&lt;LI&gt;Pick a text effect (5 combinable effects, 23 in total) and decrease the noise level to decrease readability. 
&lt;LI&gt;Draw&amp;nbsp;a border on the image using one of&amp;nbsp;5 styles and your choice of color. 
&lt;LI&gt;Randomise the fill style, gradient style, hatch style, font style, text case, text style, text effect and&amp;nbsp;border style. 
&lt;LI&gt;6 Presets included; Default, Fire, Forest, Sand, Sea, ChessBoard. 
&lt;LI&gt;Supports 3 persistent methods; ViewState, SessionState or FormField (hidden input field) - ideal if ViewState and/or SessionState isn't available to persist property values on postback. 
&lt;LI&gt;Values stored using any of the persistent methods are automatically encrypted for additional security. 
&lt;LI&gt;Image is rendered on demand (either inline or using an Image Provider), and not saved as a file. 
&lt;LI&gt;Encrypts the querystring to prevent deciphering by reading the HTML source. 
&lt;LI&gt;Works with existing ASP.NET validation controls as well as &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2004/10/30/new-control-stringcomparevalidator-provides-case-sensitive-comparisons.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2004/10/30/new-control-stringcomparevalidator-provides-case-sensitive-comparisons.aspx"&gt;StringCompareValidator&lt;/A&gt;. 
&lt;LI&gt;Can be used on standalone WebForms as well as UserControls. 
&lt;LI&gt;Supports .Text Blogging Engine (no compile needed) to prevent spam on blogs. 
&lt;LI&gt;Full Visual Studio .NET designer integration, including optional rendering whilst in design mode.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;BR&gt;&lt;FONT size=3&gt;Screenshots:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 250px; HEIGHT: 50px" height=50 src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot1-1.png" width=250 mce_src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot1-1.png"&gt;&amp;nbsp;&lt;IMG style="WIDTH: 250px; HEIGHT: 50px" height=50 src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot1-2.png" width=250 mce_src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot1-2.png"&gt;&amp;nbsp;&lt;IMG style="WIDTH: 250px; HEIGHT: 50px" height=50 src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot1-3.png" width=250 mce_src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot1-3.png"&gt;&amp;nbsp;&lt;IMG style="WIDTH: 250px; HEIGHT: 50px" height=50 src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot1-4.png" width=250 mce_src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot1-4.png"&gt;&amp;nbsp;&lt;IMG style="WIDTH: 250px; HEIGHT: 50px" height=50 src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot1-5.png" width=250 mce_src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot1-5.png"&gt;&amp;nbsp;&lt;IMG style="WIDTH: 250px; HEIGHT: 50px" height=50 src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot1-6.png" width=250 mce_src="http://dotnetfreak.co.uk/images/blog/formshield/screenshot1-6.png"&gt;&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Visual Studio .NET Design Time Notes:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;To get the image to appear when you first drag 'n' drop FormShield&amp;nbsp;to your page, save the file and then click 'Refresh' from the 'View' menu or visit the page in a Web browser. If that doesn't work, build the project and try again.&lt;BR&gt;&lt;BR&gt;
&lt;LI&gt;On occasion the image doesn't reflect property changes made within the property grid. This seems to be either an issue with Visual Studio, or caching. The easiest way to solve the problem (if it happens in the first place) is to save the file and then click 'Refresh' from the 'View' menu.&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;BR&gt;&lt;FONT size=3&gt;Usage:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Simply download, add to your toolbox, drag 'n' drop to your page and set the relevant properties using the property grid.&lt;/P&gt;
&lt;P&gt;To combine with a validation control (e.g. &lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2004/10/30/new-control-stringcomparevalidator-provides-case-sensitive-comparisons.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2004/10/30/new-control-stringcomparevalidator-provides-case-sensitive-comparisons.aspx"&gt;StringCompareValidator&lt;/A&gt;), add the validation control as well as a textbox to your page, set the StringCompareValidators 'ControlToCompare' property to point to the textbox control and the 'ControlToValidate' property to point to the FormShield control.&lt;/P&gt;
&lt;P&gt;To use an Image Provider to decrease rendering times, create a new page and set it to inherit from dotNetFreak.WebControls.FormShieldImageProvider. Then update the ImageProviderUrl property to point to the new page.&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Licensing &amp;amp; Download:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Free for both personal and commercial use, however please consider donating!&lt;/P&gt;
&lt;P&gt;You may also redistribute the control royalty free, providing that you don't charge for it.&amp;nbsp;Also, if you intend to distribute the control as part of&amp;nbsp;an application which is &lt;U&gt;publicly&lt;/U&gt; available it would be nice to know, although this isn't a requirement.&lt;/P&gt;
&lt;P mce_keep="true"&gt;Got a good image design? Drop me a line using the &lt;A class="" href="http://dotnetfreak.co.uk/blog/contact.aspx" mce_href="http://dotnetfreak.co.uk/blog/contact.aspx"&gt;contact&lt;/A&gt; link and I'll look to include it as a preset.&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;To download, please visit the '&lt;A class="" href="http://dotnetfreak.co.uk/files/folders/formshield/default.aspx" mce_href="http://dotnetfreak.co.uk/files/folders/formshield/default.aspx"&gt;&lt;FONT color=#666666&gt;Downloads&lt;/FONT&gt;&lt;/A&gt;' area.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;business=dotnetfreak%40gmail%2ecom&amp;amp;item_name=dotNetFreak%20%2eNET%20Control%20Donations&amp;amp;no_shipping=1&amp;amp;cn=Comments&amp;amp;tax=0&amp;amp;currency_code=GBP&amp;amp;lc=GB&amp;amp;bn=PP%2dDonationsBF&amp;amp;charset=UTF%2d8" mce_href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;business=dotnetfreak%40gmail%2ecom&amp;amp;item_name=dotNetFreak%20%2eNET%20Control%20Donations&amp;amp;no_shipping=1&amp;amp;cn=Comments&amp;amp;tax=0&amp;amp;currency_code=GBP&amp;amp;lc=GB&amp;amp;bn=PP%2dDonationsBF&amp;amp;charset=UTF%2d8"&gt;&lt;IMG src="http://www.paypal.com/en_US/i/btn/x-click-but04.gif" border=0 mce_src="http://www.paypal.com/en_US/i/btn/x-click-but04.gif"&gt;&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;BR&gt;&lt;FONT size=3&gt;Help &amp;amp; Support:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Please post in the &lt;A class="" href="http://dotnetfreak.co.uk/forums/12.aspx" mce_href="http://dotnetfreak.co.uk/forums/12.aspx"&gt;forum&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Integrating with the .Text Blogging Engine:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;A quick guide by &lt;A href="http://www.davidemauri.it/" mce_href="http://www.davidemauri.it/"&gt;Davide Mauri&lt;/A&gt;&amp;nbsp;on integrating FormShield with .Text to prevent spam on your blog is also available in the &lt;A class="" href="http://dotnetfreak.co.uk/files/folders/formshield/default.aspx" mce_href="http://dotnetfreak.co.uk/files/folders/formshield/default.aspx"&gt;downloads&lt;/A&gt; area.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;&lt;FONT color=#000000 size=3&gt;Revision History:&lt;/FONT&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#ff0000&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 13/07/2007 (v2.0.0):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;Click&amp;nbsp;&lt;A class="" href="http://dotnetfreak.co.uk/blog/archive/2007/07/13/formshield-for-net-2-0-released.aspx" mce_href="http://dotnetfreak.co.uk/blog/archive/2007/07/13/formshield-for-net-2-0-released.aspx"&gt;&lt;FONT color=#666666&gt;here&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;for details.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 28/06/2005 (v1.1.2):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;A new method has been added&amp;nbsp;(DrawNewText) which will force FormShield to redraw the image with a new text value. This can be used on postback to change the text that appears on the image if the user enters an incorrect value.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;Thanks to Amrinder Sandhu for suggesting this.&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 01/06/2005 (v1.1.1):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;The encrypted properties value that is passed in the query string is now UrlEncoded to prevent issues with ISAPI filters mis-interpreting it. This should also mean that ValidateRequest="false" is no longer required to be in the Page directive.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;Thanks to Mario Vargas for suggesting this.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 18/05/2005 (v1.1.0):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;New PersistenceMethod property - Allows you to use either ViewState, SessionState or a hidden input field (FormField) to persist property values. Ideal for use when ViewState and/or SessionState isn't available. 
&lt;LI&gt;.Text Blogging Engine compatible - Stop spammers from hijacking your blog - No compile needed! 
&lt;LI&gt;Values stored in ViewState, SessionState or in a hidden input field (FormField) are now encrypted. 
&lt;LI&gt;&lt;FONT color=#000000&gt;Only required property values are now persisted, reducing the amount of data stored.&lt;/FONT&gt; 
&lt;LI&gt;Encryption keys strengthened -&amp;nbsp;control name no longer used for improved security. 
&lt;LI&gt;Missing text value and other problems when used on UserControls - Fixed. 
&lt;LI&gt;&lt;FONT color=#000000&gt;Random FontStyle, GradientStyle, HatchStyle, TextCase and TextStyle were still throwing exceptions under certain conditions - Fixed - Thanks to David Waters for pointing this out.&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Thanks to &lt;A href="http://www.davidemauri.it/" mce_href="http://www.davidemauri.it/"&gt;Davide Mauri&lt;/A&gt; for making me ensure FormShield worked properly with .Text :-) and also for writing the guide on how to impliment it (see above).&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 06/01/2005 (v1.0.2):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Random FontStyles on occasion would thrown an exception&amp;nbsp;- Fixed.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 22/11/2004 (v1.0.1):&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;On occasion when using a random FontStyle, GradientStyle, HatchStyle or TextCase an exception would be thrown e.g. 'ArgumentException: Requested value Random was not found.'&lt;/P&gt;
&lt;P&gt;This has now been fixed - Thanks to Minh Tran for pointing this out.&lt;/P&gt;&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=166" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item><item><title>New Control - StringCompareValidator - Provides Case Sensitive Comparisons</title><link>http://dotnetfreak.co.uk/blog/archive/2004/10/30/new-control-stringcomparevalidator-provides-case-sensitive-comparisons.aspx</link><pubDate>Sat, 30 Oct 2004 17:26:00 GMT</pubDate><guid isPermaLink="false">6329f370-38d9-4d4b-8419-567856985e22:164</guid><dc:creator>dotNetFreak</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/rsscomments.aspx?PostID=164</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnetfreak.co.uk/blog/commentapi.aspx?PostID=164</wfw:comment><comments>http://dotnetfreak.co.uk/blog/archive/2004/10/30/new-control-stringcomparevalidator-provides-case-sensitive-comparisons.aspx#comments</comments><description>&lt;P&gt;If like me you've made use of the standard CompareValidator you'll know that it lacks one important feature for comparing strings - Case sensitivity. Whilst working on another control I needed a compare validator that had this capability, so I've created my own custom control - StringCompareValidator.&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Features:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;CaseSensitive property to allow case-sensitive or case-insensitive comparisons. 
&lt;LI&gt;CompareOperator property to allow equal or not equal comparisons. 
&lt;LI&gt;Provides&amp;nbsp;client-side and server-side validation. 
&lt;LI&gt;Full Visual Studio .NET designer integration.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;BR&gt;&lt;FONT size=3&gt;Usage:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Simply download, add to your toolbox, drag 'n' drop to your page and set the relevant properties using the property grid.&lt;/P&gt;&lt;BR&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Licensing &amp;amp; Download:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Free for both personal and commercial use, however please consider donating!&lt;/P&gt;
&lt;P&gt;You may also redistribute the control royalty free, providing that you don't charge for it.&amp;nbsp;Also, if you intend to distribute the control as part of&amp;nbsp;an application which is &lt;U&gt;publicly&lt;/U&gt; available it would be nice to know, although this isn't a requirement.&lt;/P&gt;
&lt;P mce_keep="true"&gt;To download, please visit the '&lt;A class="" href="http://dotnetfreak.co.uk/files/folders/stringcomparevalidator/default.aspx" mce_href="http://dotnetfreak.co.uk/files/folders/stringcomparevalidator/default.aspx"&gt;&lt;FONT color=#666666&gt;Downloads&lt;/FONT&gt;&lt;/A&gt;' area.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;A href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;business=dotnetfreak%40gmail%2ecom&amp;amp;item_name=dotNetFreak%20%2eNET%20Control%20Donations&amp;amp;no_shipping=1&amp;amp;cn=Comments&amp;amp;tax=0&amp;amp;currency_code=GBP&amp;amp;lc=GB&amp;amp;bn=PP%2dDonationsBF&amp;amp;charset=UTF%2d8" mce_href="https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;amp;business=dotnetfreak%40gmail%2ecom&amp;amp;item_name=dotNetFreak%20%2eNET%20Control%20Donations&amp;amp;no_shipping=1&amp;amp;cn=Comments&amp;amp;tax=0&amp;amp;currency_code=GBP&amp;amp;lc=GB&amp;amp;bn=PP%2dDonationsBF&amp;amp;charset=UTF%2d8"&gt;&lt;IMG src="http://www.paypal.com/en_US/i/btn/x-click-but04.gif" border=0 mce_src="http://www.paypal.com/en_US/i/btn/x-click-but04.gif"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;BR&gt;&lt;FONT size=3&gt;Help &amp;amp; Support:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Please post in the &lt;A class="" href="http://dotnetfreak.co.uk/forums/12.aspx" mce_href="http://dotnetfreak.co.uk/forums/12.aspx"&gt;forum&lt;/A&gt;.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&lt;STRONG&gt;&lt;FONT size=3&gt;Revision History:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;FONT color=#ff0000&gt;&lt;FONT color=#000000&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;Updated 05/06/2007 (v2.0.0):&lt;/STRONG&gt;&lt;FONT color=#ff0000&gt;&lt;FONT color=#000000&gt; 
&lt;P&gt;Click&amp;nbsp;&lt;A href="http://dotnetfreak.co.uk/blog/archive/2007/06/05/stringcomparevalidator-for-net-2-0-released.aspx"&gt;here&lt;/A&gt;&amp;nbsp;for details.&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;img src="http://dotnetfreak.co.uk/aggbug.aspx?PostID=164" width="1" height="1"&gt;</description><category domain="http://dotnetfreak.co.uk/blog/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnetfreak.co.uk/blog/archive/tags/Controls/default.aspx">Controls</category></item></channel></rss>