<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/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>Search results for 'app:weblogs' matching tags 'internetexplorer' and 'Internet'</title><link>http://msmvps.com/search/SearchResults.aspx?q=app:weblogs&amp;tag=internetexplorer,Internet&amp;orTags=0&amp;o=DateDescending</link><description>Search results for 'app:weblogs' matching tags 'internetexplorer' and 'Internet'</description><dc:language>en-US</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Detecting User Regional Settings In The Web Browser</title><link>http://msmvps.com/blogs/paulomorgado/archive/2010/05/10/detecting-user-regional-settings-in-the-web-browser.aspx</link><pubDate>Mon, 10 May 2010 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1765271</guid><dc:creator>paulo</dc:creator><description>&lt;p align="justify"&gt;Recently, a friend of mine asked me something like: “How do I get the user’s regional settings for a request to a web server?”&lt;/p&gt;  &lt;p align="justify"&gt;As far as I know, web browser only send an &lt;a title="Accept-Language HTTP Header" href="http://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-02.html#Accept_Language" target="_blank"&gt;Accept-Language&lt;/a&gt; HTTP header and nothing more. You can take this and use the default regional settings for that language but, if your user is anything like me, you’ll be wrong.&lt;/p&gt;  &lt;h4&gt;So, what’s the problem of getting it wrong?&lt;/h4&gt;  &lt;p align="justify"&gt;If you are just generating HTML and keep it consistent, nothing’s wrong. But what if your user wants to copy some numeric and/or date values to, say, &lt;a title="Microsoft Office Excel" href="http://office.microsoft.com/excel/" target="_blank"&gt;Excel&lt;/a&gt;? Or if you want to export some data as a &lt;a title="Comma-separated values" href="http://wikipedia.org/wiki/Comma-separated_values" target="_blank"&gt;CSV&lt;/a&gt; file?&lt;/p&gt;  &lt;h4&gt;A solution&lt;/h4&gt;  &lt;p align="justify"&gt;Going through the &lt;a title="JScript Language Reference (Windows Scripting - JScript)" href="http://msdn.microsoft.com/library/yek4tbz0.aspx" target="_blank"&gt;JScript Language Reference&lt;/a&gt;, I found that both &lt;a title="Number Object (Windows Scripting - JScript)" href="http://msdn.microsoft.com/library/dwab3ed2.aspx" target="_blank"&gt;Number&lt;/a&gt; and &lt;a title="Date Object (Windows Scripting - JScript)" href="http://msdn.microsoft.com/library/cd9w2te4.aspx" target="_blank"&gt;Date&lt;/a&gt; have &lt;strong&gt;locale&lt;/strong&gt; related &lt;strong&gt;toString&lt;/strong&gt; methods and I started playing with them.&lt;/p&gt;  &lt;h5&gt;Numeric format settings&lt;/h5&gt;  &lt;p align="justify"&gt;To the numeric format settings, first we need a number that will behave in a predictable manner in any culture (“any culture” means “any culture I know”) and for all possible settings and convert it to a string using the &lt;a title="toLocaleString Method (Windows Scripting - JScript)" href="http://msdn.microsoft.com/library/wb66sb9s.aspx" target="_blank"&gt;toLocaleString&lt;/a&gt; method:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;var &lt;/span&gt;number = 111111111.111111111;
&lt;span style="color:blue;"&gt;var &lt;/span&gt;numberString = number.toLocaleString();&lt;/pre&gt;

&lt;p align="justify"&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;(With my regional settings, &lt;strong&gt;numberString&lt;/strong&gt; becomes &lt;strong style="white-space:nowrap;"&gt;111 111 111.11&lt;/strong&gt;)&lt;/p&gt;

&lt;p align="justify"&gt;To get the decimal separator, all it takes is getting the first non &lt;strong&gt;1&lt;/strong&gt; from the end:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;var &lt;/span&gt;decimalSeparator;
&lt;span style="color:blue;"&gt;var &lt;/span&gt;decimalDigits;
&lt;span style="color:blue;"&gt;for &lt;/span&gt;(&lt;span style="color:blue;"&gt;var &lt;/span&gt;i = numberString.length - 1; i &amp;gt;= 0; i--) {
    &lt;span style="color:blue;"&gt;var &lt;/span&gt;char = numberString.charAt(i);
    &lt;span style="color:blue;"&gt;if &lt;/span&gt;(char != &lt;span style="color:maroon;"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;) {
        decimalSeparator = char;
        decimalDigits = numberString.length - i - 1;
        &lt;span style="color:blue;"&gt;break&lt;/span&gt;;
    }
}&lt;/pre&gt;

&lt;p align="justify"&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;And if you count how many &lt;strong&gt;1&lt;/strong&gt;s were skipped, we get the number of decimal digits.&lt;/p&gt;

&lt;p align="justify"&gt;In a similar way, the first non &lt;strong&gt;1&lt;/strong&gt; will be the digit grouping separator:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;var &lt;/span&gt;groupSeparator;
&lt;span style="color:blue;"&gt;for &lt;/span&gt;(&lt;span style="color:blue;"&gt;var &lt;/span&gt;i = 0; i &amp;lt; numberString.length; i++) {
    &lt;span style="color:blue;"&gt;var &lt;/span&gt;char = numberString.charAt(i);
    &lt;span style="color:blue;"&gt;if &lt;/span&gt;(char != &lt;span style="color:maroon;"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;) {
        groupSeparator = char;
        &lt;span style="color:blue;"&gt;break&lt;/span&gt;;
    }
}&lt;/pre&gt;

&lt;p align="justify"&gt;Now that we have the digit grouping separator, we can get the digit groups (these groups might not all have the same size):&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;var &lt;/span&gt;digitGrouping = numberString.substring(0, numberString.length - decimalDigits - 1).split(groupSeparator);
&lt;span style="color:blue;"&gt;for &lt;/span&gt;(g &lt;span style="color:blue;"&gt;in &lt;/span&gt;digitGrouping) {
    digitGrouping[g] = digitGrouping[g].length;
}&lt;/pre&gt;

&lt;h5&gt;Date and time settings&lt;/h5&gt;

&lt;p&gt;Date and time values are more difficult to parse and you might not need all information. So, I’ll just get the value and let the parsing to you:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;var &lt;/span&gt;dateTime = &lt;span style="color:blue;"&gt;new &lt;/span&gt;Date(9999, 11, 31, 23, 30, 45);
dateTimeString = dateTime.toLocaleString();&lt;/pre&gt;

&lt;h5&gt;List settings&lt;/h5&gt;

&lt;p&gt;The last setting is the list separator (very useful for those &lt;strong&gt;CSV&lt;/strong&gt; files):&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;var &lt;/span&gt;list = [&lt;span style="color:maroon;"&gt;&amp;quot;a&amp;quot;&lt;/span&gt;, &lt;span style="color:maroon;"&gt;&amp;quot;b&amp;quot;&lt;/span&gt;];
listSeparator = list.toLocaleString().substring(1, 2);&lt;/pre&gt;

&lt;h4&gt;Test page&lt;/h4&gt;

&lt;p&gt;Here is a test page the get all these settings:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color:maroon;"&gt;DOCTYPE &lt;/span&gt;&lt;span style="color:red;"&gt;HTML PUBLIC &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;quot;-//W3C//DTD HTML 4.0 Transitional//EN&amp;quot;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;html&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;head&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Test Page&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;title&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;style &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/css&amp;quot;&amp;gt;
        &lt;/span&gt;&lt;span style="color:maroon;"&gt;label  &lt;/span&gt;{ &lt;span style="color:red;"&gt;width&lt;/span&gt;: &lt;span style="color:blue;"&gt;8em&lt;/span&gt;; &lt;span style="color:red;"&gt;text-align&lt;/span&gt;: &lt;span style="color:blue;"&gt;right&lt;/span&gt;; &lt;span style="color:red;"&gt;padding-right&lt;/span&gt;: &lt;span style="color:blue;"&gt;0.5em&lt;/span&gt;; &lt;span style="color:red;"&gt;white-space&lt;/span&gt;: &lt;span style="color:blue;"&gt;nowrap&lt;/span&gt;; }
        &lt;span style="color:maroon;"&gt;span &lt;/span&gt;{ &lt;span style="color:red;"&gt;border&lt;/span&gt;: &lt;span style="color:blue;"&gt;1px solid&lt;/span&gt;; &lt;span style="color:red;"&gt;white-space&lt;/span&gt;: &lt;span style="color:blue;"&gt;nowrap&lt;/span&gt;; }
    &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;style&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;script &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;
        function &lt;/span&gt;init() {
            document.all.userLanguage.innerText = window.navigator.userLanguage;
            document.all.systemLanguage.innerText = window.navigator.systemLanguage;

            &lt;span style="color:#006400;"&gt;// Decimal separator and decimal digits
            &lt;/span&gt;&lt;span style="color:blue;"&gt;var &lt;/span&gt;number = 111111111.111111111;
            &lt;span style="color:blue;"&gt;var &lt;/span&gt;numberString = (111111111.111111111).toLocaleString();

            &lt;span style="color:blue;"&gt;var &lt;/span&gt;decimalSeparator;
            &lt;span style="color:blue;"&gt;var &lt;/span&gt;decimalDigits;
            &lt;span style="color:blue;"&gt;for &lt;/span&gt;(&lt;span style="color:blue;"&gt;var &lt;/span&gt;i = numberString.length - 1; i &amp;gt;= 0; i--) {
                &lt;span style="color:blue;"&gt;var &lt;/span&gt;char = numberString.charAt(i);
                &lt;span style="color:blue;"&gt;if &lt;/span&gt;(char != &lt;span style="color:maroon;"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;) {
                    decimalSeparator = char;
                    decimalDigits = numberString.length - i - 1;
                    &lt;span style="color:blue;"&gt;break&lt;/span&gt;;
                }
            }
            document.all.decimalSeparator.innerText = decimalSeparator;
            document.all.decimalDigits.innerText = decimalDigits;

            &lt;span style="color:#006400;"&gt;// Digit grouping separator and digit goups
            &lt;/span&gt;&lt;span style="color:blue;"&gt;var &lt;/span&gt;groupSeparator;
            &lt;span style="color:blue;"&gt;for &lt;/span&gt;(&lt;span style="color:blue;"&gt;var &lt;/span&gt;i = 0; i &amp;lt; numberString.length; i++) {
                &lt;span style="color:blue;"&gt;var &lt;/span&gt;char = numberString.charAt(i);
                &lt;span style="color:blue;"&gt;if &lt;/span&gt;(char != &lt;span style="color:maroon;"&gt;&amp;quot;1&amp;quot;&lt;/span&gt;) {
                    groupSeparator = char;
                    &lt;span style="color:blue;"&gt;break&lt;/span&gt;;
                }
            }
            document.all.groupSeparator.innerText = groupSeparator;

            &lt;span style="color:blue;"&gt;var &lt;/span&gt;digitGrouping = numberString.substring(0, numberString.length - decimalDigits - 1).split(groupSeparator);
            &lt;span style="color:blue;"&gt;for &lt;/span&gt;(g &lt;span style="color:blue;"&gt;in &lt;/span&gt;digitGrouping) {
                digitGrouping[g] = digitGrouping[g].length;
            }
            document.all.digitGrouping.innerText = digitGrouping.toString();

            &lt;span style="color:#006400;"&gt;// Date format
            &lt;/span&gt;&lt;span style="color:blue;"&gt;var &lt;/span&gt;dateTime = &lt;span style="color:blue;"&gt;new &lt;/span&gt;Date(9999, 11, 31, 23, 30, 45);
            &lt;span style="color:blue;"&gt;var &lt;/span&gt;dateTimeString = dateTime.toLocaleString();
            document.all.dateTimeFormat.innerText = dateTimeString;

            &lt;span style="color:#006400;"&gt;// List separator
            &lt;/span&gt;&lt;span style="color:blue;"&gt;var &lt;/span&gt;list = [&lt;span style="color:maroon;"&gt;&amp;quot;a&amp;quot;&lt;/span&gt;, &lt;span style="color:maroon;"&gt;&amp;quot;b&amp;quot;&lt;/span&gt;];
            &lt;span style="color:blue;"&gt;var &lt;/span&gt;listSeparator = list.toLocaleString().substring(1, 2);
            document.all.listSeparator.innerText = listSeparator;
        }
    &lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;head&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;body &lt;/span&gt;&lt;span style="color:red;"&gt;onload&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;init()&amp;quot;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;userLanguage&amp;quot;&amp;gt;&lt;/span&gt;User language:&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;userLanguage&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;systemLanguage&amp;quot;&amp;gt;&lt;/span&gt;System language:&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;systemLanguage&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;decimalSeparator&amp;quot;&amp;gt;&lt;/span&gt;Decimal separator:&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;decimalSeparator&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;decimalDigits&amp;quot;&amp;gt;&lt;/span&gt;Decimal digits:&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;decimalDigits&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;groupSeparator&amp;quot;&amp;gt;&lt;/span&gt;Digit separator:&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;groupSeparator&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;digitGrouping&amp;quot;&amp;gt;&lt;/span&gt;Digit grouping:&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;digitGrouping&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;dateTimeFormat&amp;quot;&amp;gt;&lt;/span&gt;Date/Time format:&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;dateTimeFormat&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;listSeparator&amp;quot;&amp;gt;&lt;/span&gt;List separator:&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:maroon;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;listSeparator&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;p&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;body&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:maroon;"&gt;html&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;</description></item><item><title>Defining Document Compatibility In Internet Explorer 8</title><link>http://msmvps.com/blogs/paulomorgado/archive/2010/04/05/defining-document-compatibility-in-internet-explorer-8.aspx</link><pubDate>Mon, 05 Apr 2010 05:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1762868</guid><dc:creator>paulo</dc:creator><description>&lt;p align="justify"&gt;The procedures to define document compatibility in &lt;a title="Internet Explorer" href="http://www.microsoft.com/windows/internet-explorer/" target="_blank"&gt;&lt;strong&gt;Internet Explorer&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; 8&lt;/strong&gt; are well documented &lt;a title="Defining Document Compatibility" href="http://msdn.microsoft.com/library/cc288325.aspx" target="_blank"&gt;here&lt;/a&gt;, but I’ve seem many developers and system administrators that are not aware of this.&lt;/p&gt;  &lt;p align="justify"&gt;Although you can (and should) define the document compatibility your web pages were designed to, if you don’t, &lt;strong&gt;Internet Explorer 8&lt;/strong&gt; and the &lt;a title="WebBrowserControl for the .NET Framework 1.1" href="http://www.codeproject.com/KB/miscctrl/WebBrowserControl11.aspx" target="_blank"&gt;Web Browser Control&lt;/a&gt; will default to these compatibility modes:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p align="center"&gt;&lt;strong&gt;Application&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p align="center"&gt;&lt;strong&gt;Intranet&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p align="center"&gt;&lt;strong&gt;Internet&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;Internet Explorer 8&lt;/td&gt;        &lt;td valign="top"&gt;IE7 mode&lt;/td&gt;        &lt;td valign="top"&gt;IE8 mode&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;Application hosting the Web Browser Control&lt;/td&gt;        &lt;td valign="top"&gt;IE7 mode&lt;/td&gt;        &lt;td valign="top"&gt;IE7 mode&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p align="justify"&gt;If you notice the table above, by default, only Internet Explore 8 will present itself to the as Internet Explorer 8 and only to Internet sites.&lt;/p&gt;  &lt;p align="justify"&gt;The way Internet Explorer (and any other browser) presents itself the web servers is using its user agent string:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top"&gt;         &lt;p align="center"&gt;&lt;strong&gt;Mode&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top"&gt;         &lt;p align="center"&gt;&lt;strong&gt;User Agent String&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;IE7&lt;/td&gt;        &lt;td valign="top"&gt;Mozilla/4.0 (compatible; MSIE 7.0; …; Trident/4.0; …)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top"&gt;IE8&lt;/td&gt;        &lt;td valign="top"&gt;Mozilla/4.0 (compatible; MSIE 8.0; …; Trident/4.0; …)&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;(If you are curious about the history of the user-agent string, read the &lt;a title="History of the user-agent string" href="http://www.nczonline.net/blog/2010/01/12/history-of-the-user-agent-string/" target="_blank"&gt;History of the user-agent string&lt;/a&gt;)&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a title="Microsoft Corporation" href="http://www.microsoft.com/" target="_blank"&gt;Microsoft&lt;/a&gt; did this to keep compatibility with legacy applications used by enterprises (large and small) but this brings a few issues to development and testing.&lt;/p&gt;  &lt;p align="justify"&gt;If you are building a public web site for Internet Explorer 8, you might see the right thing on your development machine, but the quality assurance team will see the site as if it were an Internet Explorer 7 if the version they are testing is on the intranet. If the the web site you are developing is going to be accessed from an application hosting the Web Browser Control and you don’t test on that application, you are not going to see the same thing.&lt;/p&gt;  &lt;p align="justify"&gt;To know how is your browser presenting itself to the web server in the internet, there are several web sites that will show information about the user-agent string (like &lt;a title="useragents.org" href="http://www.useragents.org/" target="_blank"&gt;http://www.useragents.org/&lt;/a&gt;) and it helps to have the same thing in your intranet. If you want to build such a web application using &lt;a title="ASP.NET Developer Center" href="http://msdn.microsoft.com/asp.net/" target="_blank"&gt;ASP.NET&lt;/a&gt;, you can use the &lt;a title="HttpRequest.UserAgent Property" href="http://msdn.microsoft.com/library/system.web.httprequest.useragent.aspx" target="_blank"&gt;UserAgent&lt;/a&gt; property of the &lt;a title="HttpRequest Class" href="http://msdn.microsoft.com/library/system.web.httprequest.aspx" target="_blank"&gt;HttpRequest&lt;/a&gt; class (or the &lt;a title="HttpRequest.Browser Property" href="http://msdn.microsoft.com/library/system.web.httprequest.browser.aspx" target="_blank"&gt;Browser&lt;/a&gt; property for more detailed information).&lt;/p&gt;  &lt;p align="justify"&gt;This type of information is also available in Internet Explorer in the &lt;a title="navigator Object" href="http://msdn.microsoft.com/library/ms535867.aspx" target="_blank"&gt;navigator&lt;/a&gt; object.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a title="Giorgio Sardo Blog" href="http://blogs.msdn.com/giorgio/" target="_blank"&gt;Giorgio Sardo&lt;/a&gt; has a few &lt;a title="How to detect IE8 using JavaScript (Client side)" href="http://blogs.msdn.com/giorgio/archive/2009/04/14/how-to-detect-ie8-using-javascript-client-side.aspx" target="_blank"&gt;functions to detect Internet Explorer 8&lt;/a&gt; but you might also want to develop a diagnostics page (or part) to show the web browser features, something like this:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;fieldset &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowserInfo&amp;quot;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;legend&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;Web Browser&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;legend&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;table &lt;/span&gt;&lt;span style="color:red;"&gt;border&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;1&amp;quot;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;label&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;style&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt;width&lt;/span&gt;: &lt;span style="color:blue;"&gt;100px&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$userAgent&amp;quot;&amp;gt;&lt;/span&gt;userAgent&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;value&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;colspan&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$userAgent&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;label&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;style&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt;width&lt;/span&gt;: &lt;span style="color:blue;"&gt;100px&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$appVersion&amp;quot;&amp;gt;&lt;/span&gt;appVersion&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$appVersion&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;label&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$appMinorVersion&amp;quot;&amp;gt;&lt;/span&gt;appMinorVersion&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$appMinorVersion&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;label&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;style&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt;width&lt;/span&gt;: &lt;span style="color:blue;"&gt;100px&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$appCodeName&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;style&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt;width&lt;/span&gt;: &lt;span style="color:blue;"&gt;600px&amp;quot;&amp;gt;&lt;/span&gt;appCodeName&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;value&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;colspan&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$appCodeName&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;label&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$appName&amp;quot;&amp;gt;&lt;/span&gt;appName&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;value&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;colspan&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;3&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$appName&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;label&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;style&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt;width&lt;/span&gt;: &lt;span style="color:blue;"&gt;100px&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$userLanguage&amp;quot;&amp;gt;&lt;/span&gt;userLanguage&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$userLanguage&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;label&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;style&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt;width&lt;/span&gt;: &lt;span style="color:blue;"&gt;100px&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$cpuClass&amp;quot;&amp;gt;&lt;/span&gt;cpuClass&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$cpuClass&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;label&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$systemLanguage&amp;quot;&amp;gt;&lt;/span&gt;systemLanguage&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$systemLanguage&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;label&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$platform&amp;quot;&amp;gt;&lt;/span&gt;platform&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$platform&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;label&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$browserLanguage&amp;quot;&amp;gt;&lt;/span&gt;browserLanguage&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;value&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$browserLanguage&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;label&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;style&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;&lt;/span&gt;&lt;span style="color:red;"&gt;width&lt;/span&gt;: &lt;span style="color:blue;"&gt;100px&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label &lt;/span&gt;&lt;span style="color:red;"&gt;for&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$cookieEnabled&amp;quot;&amp;gt;&lt;/span&gt;cookieEnabled&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;label&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
            &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td &lt;/span&gt;&lt;span style="color:red;"&gt;class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;value&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;colspan&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;webBrowser$cookieEnabled&amp;quot;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;span&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;td&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;tr&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;table&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;fieldset&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&lt;/span&gt;
&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;script &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;span style="color:#000000;"&gt;
    document.getElementById(&lt;span style="color:#a31515;"&gt;&amp;quot;webBrowser$userAgent&amp;quot;&lt;/span&gt;).innerHTML = window.navigator.userAgent;
    document.getElementById(&lt;span style="color:#a31515;"&gt;&amp;quot;webBrowser$appCodeName&amp;quot;&lt;/span&gt;).innerHTML = window.navigator.appCodeName;
    document.getElementById(&lt;span style="color:#a31515;"&gt;&amp;quot;webBrowser$appMinorVersion&amp;quot;&lt;/span&gt;).innerHTML = window.navigator.appMinorVersion;
    document.getElementById(&lt;span style="color:#a31515;"&gt;&amp;quot;webBrowser$appName&amp;quot;&lt;/span&gt;).innerHTML = window.navigator.appName;
    document.getElementById(&lt;span style="color:#a31515;"&gt;&amp;quot;webBrowser$appVersion&amp;quot;&lt;/span&gt;).innerHTML = window.navigator.appVersion;
    document.getElementById(&lt;span style="color:#a31515;"&gt;&amp;quot;webBrowser$browserLanguage&amp;quot;&lt;/span&gt;).innerHTML = window.navigator.browserLanguage;
    document.getElementById(&lt;span style="color:#a31515;"&gt;&amp;quot;webBrowser$cookieEnabled&amp;quot;&lt;/span&gt;).innerHTML = window.navigator.cookieEnabled;
    document.getElementById(&lt;span style="color:#a31515;"&gt;&amp;quot;webBrowser$cpuClass&amp;quot;&lt;/span&gt;).innerHTML = window.navigator.cpuClass;
    document.getElementById(&lt;span style="color:#a31515;"&gt;&amp;quot;webBrowser$platform&amp;quot;&lt;/span&gt;).innerHTML = window.navigator.platform;
    document.getElementById(&lt;span style="color:#a31515;"&gt;&amp;quot;webBrowser$systemLanguage&amp;quot;&lt;/span&gt;).innerHTML = window.navigator.systemLanguage;
    document.getElementById(&lt;span style="color:#a31515;"&gt;&amp;quot;webBrowser$userLanguage&amp;quot;&lt;/span&gt;).innerHTML = window.navigator.userLanguage;&lt;/span&gt;
&amp;lt;/&lt;span style="color:#a31515;"&gt;script&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;</description></item><item><title>Setting A Web Proxy Through Configuration In .NET Applications</title><link>http://msmvps.com/blogs/paulomorgado/archive/2009/01/12/setting-a-web-proxy-through-configuration-in-net-applications.aspx</link><pubDate>Mon, 12 Jan 2009 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1661210</guid><dc:creator>paulo</dc:creator><description>&lt;p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Specially in enterprise environments, proxy servers are used to access the Internet.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;In a &lt;a target="_blank" href="http://cli.gs/cligs/Microsoft-Windows" title="Microsoft Windows"&gt;Windows&lt;/a&gt; / &lt;a target="_blank" href="http://cli.gs/Internet-Explorer" title="Internet Explorer"&gt;Internet Explorer&lt;/a&gt; environments there is a proxy server configuration in Internet &lt;strong&gt;Properties&lt;/strong&gt; &amp;gt; &lt;strong&gt;Connections&lt;/strong&gt; &amp;gt; &lt;strong&gt;LAN settings&lt;/strong&gt; &amp;gt; &lt;strong&gt;Proxy server&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;Although these configurations are tightly connected to Internet Explorer, any well behaved Windows application should, at least, allow the user to choose to use them.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;In applications targeting the &lt;a target="_blank" href="http://cli.gs/cligs/Microsoft-NET" title="Microsoft .NET"&gt;.NET framework&lt;/a&gt;, these the proxy server can be set on a per call basis. Several networking classes have a Proxy property that receives a value implementing the &lt;a target="_blank" href="http://cli.gs/QNbUQ8" title="IWebProxy Interface"&gt;IWebProxy&lt;/a&gt; interface.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;In order for the Windows/ Internet Explorer configuration to be used, the application must be configured to use the default proxy settings.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p align="justify"&gt;This configuration is done in the machine or application file in the &lt;a target="_blank" href="http://cli.gs/bDYvUy" title="proxy Element (Network Settings)"&gt;proxy&lt;/a&gt; element of the &lt;a target="_blank" href="http://cli.gs/AHTSq7" title="defaultProxy Element (Network Settings)"&gt;defaultProxy&lt;/a&gt; configuration section in the &lt;a target="_blank" href="http://cli.gs/sUASsa" title="system.net Element (Network Settings)"&gt;system.net&lt;/a&gt; section group:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.net&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;defaultProxy &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;enabled&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;proxy &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;usesystemdefault&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;True&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;/&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;defaultProxy&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.net&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can use this configuration also to set a specific proxy to be used by your application. In the following example, a proxy setting for using the &lt;a target="_blank" href="http://cli.gs/FiddlerTool" title="Fiddler - Web Debugging Proxy"&gt;Fiddler Tool&lt;/a&gt; is used:&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.net&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;defaultProxy &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;enabled&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;proxy &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;proxyaddress&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;http://ipv4.fiddler&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;/&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;defaultProxy&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.net&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately, this is a MachineToApplication setting and, for that reason, is not allowed in the user settings configuration file, when in a shared installation. In these type of installations, the default Windows / Internet Explorer settings should be used as a default. If a user needs or wants to specify proxy server settings, application specific proxy server settings must be used but, assigning the user defined proxy server configuration to the &lt;a target="_blank" href="http://cli.gs/d5LP0S" title="GlobalProxySelection.Select Property"&gt;GlobalProxySelection.Select&lt;/a&gt; property will allow its use for the entire application.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Setting A Web Proxy Through Configuration In .NET Applications</title><link>http://msmvps.com/blogs/paulomorgado/archive/2009/01/12/setting-a-web-proxy-through-configuration-in-net-applications.aspx</link><pubDate>Mon, 12 Jan 2009 06:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1661210</guid><dc:creator>paulo</dc:creator><description>&lt;p align="justify"&gt;Specially in enterprise environments, proxy servers are used to access the Internet.&lt;/p&gt;  &lt;p align="justify"&gt;In a &lt;a title="Microsoft Windows" href="http://cli.gs/cligs/Microsoft-Windows" target="_blank"&gt;Windows&lt;/a&gt; / &lt;a title="Internet Explorer" href="http://cli.gs/Internet-Explorer" target="_blank"&gt;Internet Explorer&lt;/a&gt; environments there is a proxy server configuration in Internet &lt;strong&gt;Properties&lt;/strong&gt; &amp;gt; &lt;strong&gt;Connections&lt;/strong&gt; &amp;gt; &lt;strong&gt;LAN settings&lt;/strong&gt; &amp;gt; &lt;strong&gt;Proxy server&lt;/strong&gt;.&lt;/p&gt;  &lt;p align="justify"&gt;Although these configurations are tightly connected to Internet Explorer, any well behaved Windows application should, at least, allow the user to choose to use them.&lt;/p&gt;  &lt;p align="justify"&gt;In applications targeting the &lt;a title="Microsoft .NET" href="http://cli.gs/cligs/Microsoft-NET" target="_blank"&gt;.NET framework&lt;/a&gt;, these the proxy server can be set on a per call basis. Several networking classes have a Proxy property that receives a value implementing the &lt;a title="IWebProxy Interface" href="http://cli.gs/QNbUQ8" target="_blank"&gt;IWebProxy&lt;/a&gt; interface.&lt;/p&gt;  &lt;p align="justify"&gt;In order for the Windows/ Internet Explorer configuration to be used, the application must be configured to use the default proxy settings.&lt;/p&gt;  &lt;p align="justify"&gt;This configuration is done in the machine or application file in the &lt;a title="proxy Element (Network Settings)" href="http://cli.gs/bDYvUy" target="_blank"&gt;proxy&lt;/a&gt; element of the &lt;a title="defaultProxy Element (Network Settings)" href="http://cli.gs/AHTSq7" target="_blank"&gt;defaultProxy&lt;/a&gt; configuration section in the &lt;a title="system.net Element (Network Settings)" href="http://cli.gs/sUASsa" target="_blank"&gt;system.net&lt;/a&gt; section group:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.net&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;defaultProxy &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;enabled&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;proxy &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;usesystemdefault&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;True&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;/&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;defaultProxy&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.net&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;You can use this configuration also to set a specific proxy to be used by your application. In the following example, a proxy setting for using the &lt;a title="Fiddler - Web Debugging Proxy" href="http://cli.gs/FiddlerTool" target="_blank"&gt;Fiddler Tool&lt;/a&gt; is used:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:#0000ff;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.net&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;defaultProxy &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;enabled&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;true&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;&amp;gt;
      &lt;strike&gt;&amp;lt;&lt;/strike&gt;&lt;/span&gt;&lt;strike&gt;&lt;span style="color:#a31515;"&gt;proxy &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;proxyaddress&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;http://ipv4.fiddler&lt;/span&gt;&amp;quot;&lt;/strike&gt;&lt;span style="color:#0000ff;"&gt;&lt;strike&gt;/&amp;gt;&lt;/strike&gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;proxy &lt;/span&gt;&lt;span style="color:#ff0000;"&gt;proxyaddress&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;http://127.0.0.1:8888&lt;/span&gt;&amp;quot;&lt;span style="color:#0000ff;"&gt;/&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;defaultProxy&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.net&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:#0000ff;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Unfortunately, this is a MachineToApplication setting and, for that reason, is not allowed in the user settings configuration file, when in a shared installation. In these type of installations, the default Windows / Internet Explorer settings should be used as a default. If a user needs or wants to specify proxy server settings, application specific proxy server settings must be used but, assigning the user defined proxy server configuration to the &lt;a title="GlobalProxySelection.Select Property" href="http://cli.gs/d5LP0S" target="_blank"&gt;GlobalProxySelection.Select&lt;/a&gt; property will allow its use for the entire application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Updated:&lt;/strong&gt; Corrected proxy address when using Fiddler following &lt;a title="Fiddler Web Debugger" href="http://blogs.msdn.com/ericlaw/" target="_blank"&gt;Eric Lawrence&lt;/a&gt;’s comment: &lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&amp;gt; &amp;lt;proxy proxyaddress=&amp;quot;http://ipv4.fiddler/&amp;quot; /&amp;gt;&lt;/p&gt;

  &lt;p&gt;That line should not work. Fiddler doesn&amp;#39;t register anything in DNS, so for &amp;quot;ipv4.fiddler&amp;quot; to have any meaning, Fiddler must already be being used as the proxy.&lt;/p&gt;

  &lt;p&gt;The proper setting for Fiddler use should be:&lt;/p&gt;

  &lt;p&gt; &amp;lt;proxy proxyaddress=&amp;quot;http://127.0.0.1:8888&amp;quot; /&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;</description></item></channel></rss>