<feed xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
    <title>Sanjay</title>
    <link rel="self" type="application/xml" href="http://geekswithblogs.net/SanjayU/Atom.aspx" />
    <subtitle type="html" />
    <id>http://geekswithblogs.net/SanjayU/Default.aspx</id>
    <author>
        <name>Sanjay</name>
        <uri>http://geekswithblogs.net/SanjayU/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 0.0.0.0">Subtext</generator>
    <updated>2008-10-02T20:31:11Z</updated>
    <entry>
        <title>.NET C# Image / Photo Crop Logic</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/SanjayU/archive/2008/09/08/.net-c-image--photo-crop-logic.aspx" />
        <id>http://geekswithblogs.net/SanjayU/archive/2008/09/08/.net-c-image--photo-crop-logic.aspx</id>
        <published>2008-09-08T00:24:35-04:00:00</published>
        <updated>2008-09-08T00:24:35Z</updated>
        <content type="html">I just posted an article, tutorial, and code on how to crop an image using asp.net and a javascript library.  &lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://geekswithblogs.net/SanjayU/archive/2008/09/08/asp.net-image--photo-cropper-in-c.aspx"&gt;You can check it out here!&lt;/a&gt;&lt;img src="http://geekswithblogs.net/SanjayU/aggbug/125003.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/SanjayU/comments/125003.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/SanjayU/comments/commentRss/125003.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/SanjayU/services/trackbacks/125003.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Google Search Appliance API in VB.NET</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/SanjayU/archive/2008/08/30/google-search-appliance-api-in-vb.net.aspx" />
        <id>http://geekswithblogs.net/SanjayU/archive/2008/08/30/google-search-appliance-api-in-vb.net.aspx</id>
        <published>2008-08-30T14:57:31-04:00:00</published>
        <updated>2008-08-30T14:57:31Z</updated>
        <content type="html">A while back I ported the C# Google Search Appliance API to VB.NET.  You can find it &lt;a href="http://www.codeplex.com/GSALib/SourceControl/ListDownloadableCommits.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
The original API was ported over from JAVA by &lt;a href="http://www.mcplusa.com"&gt;MC+A.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;img src="http://geekswithblogs.net/SanjayU/aggbug/124819.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/SanjayU/comments/124819.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/SanjayU/comments/commentRss/124819.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/SanjayU/services/trackbacks/124819.aspx</trackback:ping>
    </entry>
    <entry>
        <title>CSS Tags Specific to Browser [IE6, IE7]</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/SanjayU/archive/2008/08/28/css-tags-specific-to-browser-ie6-ie7.aspx" />
        <id>http://geekswithblogs.net/SanjayU/archive/2008/08/28/css-tags-specific-to-browser-ie6-ie7.aspx</id>
        <published>2008-08-28T11:46:52-04:00:00</published>
        <updated>2008-08-28T11:46:52Z</updated>
        <content type="html">I came across this posting on Ed Eliot's blog and had NO idea this existed but it made my life a lot easier.  Full credit goes to him on this - the below is cut and pasted directly from his blog so I know where to find it in the future.  The URL for this post on his blog is:&lt;br /&gt;
http://www.ejeliot.com/blog/63&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;.box {&lt;br /&gt;   background: #00f; /* all browsers including Mac IE */&lt;br /&gt;   *background: #f00; /* IE 7 and below */&lt;br /&gt;   _background: #f60; /* IE 6 and below */&lt;br /&gt;   padding: 7px;&lt;br /&gt;   color: #fff;&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;
I think it speaks for itself.  In my case, I easily fixed my annoying IE6 problem by applying a negative bottom margin that only applies to IE6.  Perfect.  I have used conditional statements to load CSS files based on your browser, but this is really helpful for those elements where you need to apply a tag to an element here or there - no point in creating an entirely different CSS file for things like this.&lt;img src="http://geekswithblogs.net/SanjayU/aggbug/124758.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/SanjayU/comments/124758.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/SanjayU/comments/commentRss/124758.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/SanjayU/services/trackbacks/124758.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Login Control, ImageButton, Default Button...</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/SanjayU/archive/2008/08/25/login-control-imagebutton-default-button.aspx" />
        <id>http://geekswithblogs.net/SanjayU/archive/2008/08/25/login-control-imagebutton-default-button.aspx</id>
        <published>2008-08-25T12:09:14-04:00:00</published>
        <updated>2008-08-25T12:09:14Z</updated>
        <content type="html">I feel like I do a lot of bitching about the DefaultButton property.  But anyway...&lt;br /&gt;
&lt;br /&gt;
What happens when you're using a Login control, and you decide to use an ImageButton for the Login button?  You guessed it, you break the DefaultButton property.&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;&lt;font size="2" color="#008000"&gt;''Make the login button of the login  control the default button. This is useful when your login control uses an image  button. &lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#008000"&gt;''Doing so makes the DefaultButton property  do nothing.&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Dim&lt;/font&gt;&lt;font size="2"&gt; loginControl  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; Control = &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Me&lt;/font&gt;&lt;font size="2"&gt;.FindControl(&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;"Login1"&lt;/font&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;If&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Not&lt;/font&gt;&lt;font size="2"&gt; loginControl &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Is&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Nothing&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Then&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Dim&lt;/font&gt;&lt;font size="2"&gt; loginButton  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; Control =  loginControl.FindControl(&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;"LoginButton"&lt;/font&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;If&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Not&lt;/font&gt;&lt;font size="2"&gt; loginButton &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Is&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Nothing&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Then&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2"&gt;pnlLogin.DefaultButton = loginButton.UniqueID.Remove(0,  pnlLogin.Parent.UniqueID.Length + 1)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;If&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;If&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/SanjayU/aggbug/124666.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/SanjayU/comments/124666.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/SanjayU/comments/commentRss/124666.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/SanjayU/services/trackbacks/124666.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Login Control, Default Button, ugh.</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/SanjayU/archive/2008/08/08/login-control-default-button-ugh.aspx" />
        <id>http://geekswithblogs.net/SanjayU/archive/2008/08/08/login-control-default-button-ugh.aspx</id>
        <published>2008-08-08T16:34:34-04:00:00</published>
        <updated>2008-08-08T16:34:34Z</updated>
        <content type="html">Yes, you can definitely find this information &lt;a href="http://forums.asp.net/p/896760/968518.aspx#968518"&gt;elsewhere &lt;/a&gt;but...what happens when you want to use a login control on a page and also use the default button property so when a user hits enter it submits the login control's button.  Nothing, because you have no idea what the hell the ID of the submit button is.  &lt;br /&gt;
&lt;br /&gt;
Here is the workaround:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;asp:LinkButton ID="lnkbtn1" runat="server" /&amp;gt;&lt;br /&gt;
&amp;lt;asp:Panel ID="pnlLogin" runat="server" style="display:none" CssClass="modalPopup"  &lt;span style="color: rgb(255, 0, 0);"&gt;DefaultButton="Login1$LoginButton" &lt;/span&gt; &amp;gt; &lt;br /&gt;
     &amp;lt;div class="modaltext"&amp;gt;&lt;br /&gt;
    &amp;lt;label id="modalTextMessage" &amp;gt;&amp;lt;/label&amp;gt;&lt;br /&gt;
    &amp;lt;asp:Login ID="&lt;span style="color: rgb(255, 0, 0);"&gt;Login1&lt;/span&gt;" runat="server" Width="246px" &amp;gt;&lt;br /&gt;
    &amp;lt;/asp:Login&amp;gt;&lt;br /&gt;
    &amp;lt;asp:button id="btnCancel" runat="server" text="Cancel" /&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/asp:Panel&amp;gt;&lt;img src="http://geekswithblogs.net/SanjayU/aggbug/124322.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/SanjayU/comments/124322.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/SanjayU/comments/commentRss/124322.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/SanjayU/services/trackbacks/124322.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Default Button Workaround for imagebuttons &amp; linkbuttons, Part II</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/SanjayU/archive/2008/08/01/default-button-workaround-for-imagebuttons--linkbuttons-part-ii.aspx" />
        <id>http://geekswithblogs.net/SanjayU/archive/2008/08/01/default-button-workaround-for-imagebuttons--linkbuttons-part-ii.aspx</id>
        <published>2008-08-01T11:56:14-04:00:00</published>
        <updated>2008-08-01T12:01:30Z</updated>
        <content type="html">Okay...so, the &lt;a href="http://geekswithblogs.net/SanjayU/archive/2008/07/31/124159.aspx"&gt;post yesterday&lt;/a&gt; was clearly not as researched as it should have been.  &lt;br /&gt;
&lt;br /&gt;
It's true...the Click() event does NOT work in FF...so, the solution I had to utilize the click event had a rather short lifespan.  &lt;br /&gt;
&lt;br /&gt;
I tried to dynamically add the __onPostBack javascript event onKeyPress as well as onkeydown - to no avail.  I'm not sure why it wouldn't work...but, it just wouldn't.  (I'm using an image button, .NET 3.5, a lot of JS &amp;amp; AJAX on the page - not sure what, if any of that muddies the waters)&lt;br /&gt;
&lt;br /&gt;
So...I decided to stick with my core solution, and just &lt;a href="http://geekswithblogs.net/SanjayU/archive/2008/08/01/default-button-workaround-for-imagebuttons--linkbuttons-part-ii.aspx"&gt;find a workaround&lt;/a&gt; for the lack of a click() FF event.  &lt;br /&gt;
&lt;br /&gt;
I added this to my page..&lt;br /&gt;
&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;function&lt;/font&gt;&lt;font size="2"&gt; FireClick(id){&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;if&lt;/font&gt;&lt;font size="2"&gt;  ($get(id).dispatchEvent){&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;var&lt;/font&gt;&lt;font size="2"&gt; e =  document.createEvent(&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;"MouseEvents"&lt;/font&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;e.initEvent(&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;"click"&lt;/font&gt;&lt;font size="2"&gt;,  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;true&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;true&lt;/font&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;$get(id).dispatchEvent(e);&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2" color="#0000ff"&gt;else&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt;$get(id).click();&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;br /&gt;
Then, I used this...&lt;br /&gt;
&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;tbSearchBox.Attributes.Add(&lt;/font&gt;&lt;font size="2" color="#a31515"&gt;"onkeydown"&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#a31515"&gt;"javascript:if((event.which &amp;amp;&amp;amp; event.which == 13) ||  (event.keyCode &amp;amp;&amp;amp; event.keyCode == 13)){FireClick('"&lt;/font&gt;&lt;font size="2"&gt;  _&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;&amp;amp; btnSearchButton.ClientID &amp;amp; &lt;/font&gt;&lt;font size="2" color="#a31515"&gt;"');return false;}else return true;"&lt;/font&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;&lt;font size="2"&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;Nothing too special - Basically I'm firing my FireClick() JS event to handle the click() - but seems to work on IE6/7 and FF....&lt;/span&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/SanjayU/aggbug/124181.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/SanjayU/comments/124181.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/SanjayU/comments/commentRss/124181.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/SanjayU/services/trackbacks/124181.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Default Button Workaround for imagebuttons &amp; linkbuttons</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/SanjayU/archive/2008/07/31/124159.aspx" />
        <id>http://geekswithblogs.net/SanjayU/archive/2008/07/31/124159.aspx</id>
        <published>2008-07-31T15:08:28-04:00:00</published>
        <updated>2008-08-01T11:57:29Z</updated>
        <content type="html">UPDATE: If you're looking for the solution that will work in FireFox &amp;amp; IE...Go &lt;a href="http://geekswithblogs.net/SanjayU/archive/2008/08/01/default-button-workaround-for-imagebuttons--linkbuttons-part-ii.aspx"&gt;here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Okay, I admit, this is yet another post so I know where to go in 3 months when I totally forget this day.  &lt;br /&gt;
&lt;br /&gt;
Long story short: I was trying to use the DefaultButton property on a panel in order to get a button clicked by default when a user hits enter on my search form.  I was using an ImageButton, and surprise! That won't freakin' work!  Seriously...try it.  &lt;br /&gt;
&lt;br /&gt;
I came across a post on here ( http://bytes.com/forum/thread288545.html ) from  S. Justin Gengo. With a link to his site.... http://www.aboutfortunate.com/Code-Repository.aspx?entryid=14&lt;br /&gt;
&lt;br /&gt;
And booya, his simple JS code works perfectly in IE6/7 &amp;amp; FF.  &lt;br /&gt;
&lt;br /&gt;
Good day, sir.&lt;br /&gt;
&lt;br /&gt;
ps - Thank you Justin&lt;br /&gt;
&lt;br /&gt;
___&lt;br /&gt;
 tbSearchBox.Attributes.Add("onkeydown", _&lt;br /&gt;
    "javascript:if((event.which &amp;amp;&amp;amp; event.which == 13) || (event.keyCode &amp;amp;&amp;amp; event.keyCode == 13)){document.getElementById('" _&lt;br /&gt;
    &amp;amp; btnSearchButton.ClientID &amp;amp; "').click();return false;}else return true;")&lt;img src="http://geekswithblogs.net/SanjayU/aggbug/124159.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/SanjayU/comments/124159.aspx</wfw:comment>
        <slash:comments>2</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/SanjayU/comments/commentRss/124159.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/SanjayU/services/trackbacks/124159.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Get BehaviorID from Master Page</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/SanjayU/archive/2008/07/29/124104.aspx" />
        <id>http://geekswithblogs.net/SanjayU/archive/2008/07/29/124104.aspx</id>
        <published>2008-07-29T14:19:34-04:00:00</published>
        <updated>2008-07-29T14:19:34Z</updated>
        <content type="html">You can definitely find this information &lt;a href="http://blogs.msdn.com/brettrobinson/archive/2007/03/01/get-at-the-asp-net-ajax-control-name-with-the-behaviorid-property.aspx"&gt;elsewhere&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
But...I'm going to put it here right so I know where to go next time :)&lt;br /&gt;
&lt;br /&gt;
I have/had a situation where I had a modal control on my master page - it's what I'm using for a user to log into my application.  I have many pages that need to call this - but I needed a way to call the show() method on my modal pop-up, from javascript.  Here is the solution...&lt;br /&gt;
&lt;br /&gt;
  var modalOnmaster = $find("ctlModalPopupBehavior"); &lt;br /&gt;
  modalOnmaster.show();&lt;br /&gt;
&lt;br /&gt;
Thank you Brett.&lt;img src="http://geekswithblogs.net/SanjayU/aggbug/124104.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/SanjayU/comments/124104.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/SanjayU/comments/commentRss/124104.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/SanjayU/services/trackbacks/124104.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Send e-mail with attachment from database image column (sql server 2k5)</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/SanjayU/archive/2008/01/31/119155.aspx" />
        <id>http://geekswithblogs.net/SanjayU/archive/2008/01/31/119155.aspx</id>
        <published>2008-01-31T16:44:34-05:00:00</published>
        <updated>2008-01-31T16:44:34Z</updated>
        <content type="html">Soooo...I needed to get files out of my SQL Server table (which has the files in an image column) and attach them to an email to send out.  I honestly thought this would be a no-brainer but turned out it was pretty finicky.  Anyway...the code to so is below just in case anyone is wondering.&lt;br /&gt;
&lt;br /&gt;
&lt;!--
{\rtf1\ansi\ansicpg\lang1024\noproof1252\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0??;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;??\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;??\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;??\red192\green192\blue192;}??\fs20     \cf2 Function\cf0  SendEmail()\par ??        \cf11 'Get your data (filename, content type, image column) from the db\par ??\cf0         \cf2 Dim\cf0  dt \cf2 As\cf0  DataTable = GetYourStuff()\par ??\par ??        \cf2 If\cf0  dt.Rows.Count &amp;lt;= 0 \cf2 Then\cf0  \cf2 Return\cf0  \cf2 Nothing\par ??\par ??\cf0         \cf2 Dim\cf0  msg \cf2 As\cf0  System.Net.Mail.MailMessage = \cf2 New\cf0  System.Net.Mail.MailMessage()\par ??        msg.Subject = \cf13 "Sample Message"\par ??\cf0         msg.To.Add(\cf2 New\cf0  System.Net.Mail.MailAddress(\cf13 "Receiver@yourDomain.com"\cf0 ))\par ??        \cf2 Dim\cf0  fromadx \cf2 As\cf0  \cf2 New\cf0  System.Net.Mail.MailAddress(\cf13 "Sender@yourDomain.com"\cf0 , \cf13 "Sender Name"\cf0 )\par ??        msg.From = fromadx\par ??        msg.IsBodyHtml = \cf2 False\par ??\cf0         msg.Body = \cf13 "Sample body..."\par ??\par ??\cf0         \cf2 Dim\cf0  strMem \cf2 As\cf0  System.IO.MemoryStream = \cf2 New\cf0  System.IO.MemoryStream(\cf2 CType\cf0 (dt.Rows(0)(\cf13 "ImageColumn"\cf0 ), \cf2 Byte\cf0 ()))\par ??        \cf2 Dim\cf0  strWriter \cf2 As\cf0  System.IO.StreamWriter = \cf2 New\cf0  System.IO.StreamWriter(strMem)\par ??        strWriter.Flush()\par ??\par ??        \cf11 'this is very important..wont work without it\par ??\cf0         strMem.Position = 0\par ??\par ??        \cf11 'Filename and content type are hardcoded here, but I assume you get them from GetYourStuff() above\par ??\cf0         \cf2 Dim\cf0  attachment \cf2 As\cf0  System.Net.Mail.Attachment = \cf2 New\cf0  System.Net.Mail.Attachment(strMem, \cf13 "myFile.txt"\cf0 , \cf13 "text/plain"\cf0 )\par ??        msg.Attachments.Add(attachment)\par ??        \cf2 Dim\cf0  smtpClient \cf2 As\cf0  System.Net.Mail.SmtpClient = \cf2 New\cf0  System.Net.Mail.SmtpClient(ConfigurationManager.AppSettings.Item(\cf13 "smtpserver"\cf0 ), 25)\par ??        smtpClient.Send(msg)\par ??    \cf2 End\cf0  \cf2 Function}
--&gt;
&lt;div style="background: white none repeat scroll 0%; font-family: Courier New; font-size: 10pt; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;
&lt;p style="margin: 0px;"&gt;    &lt;span style="color: blue;"&gt;Function&lt;/span&gt; SendEmail()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        &lt;span style="color: green;"&gt;'Get your data (filename, content type, image column) from the db&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; dt &lt;span style="color: blue;"&gt;As&lt;/span&gt; DataTable = GetYourStuff()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt; &lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        &lt;span style="color: blue;"&gt;If&lt;/span&gt; dt.Rows.Count &amp;lt;= 0 &lt;span style="color: blue;"&gt;Then&lt;/span&gt; &lt;span style="color: blue;"&gt;Return&lt;/span&gt; &lt;span style="color: blue;"&gt;Nothing&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt; &lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; msg &lt;span style="color: blue;"&gt;As&lt;/span&gt; System.Net.Mail.MailMessage = &lt;span style="color: blue;"&gt;New&lt;/span&gt; System.Net.Mail.MailMessage()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        msg.Subject = &lt;span style="color: maroon;"&gt;"Sample Message"&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        msg.To.Add(&lt;span style="color: blue;"&gt;New&lt;/span&gt; System.Net.Mail.MailAddress(&lt;span style="color: maroon;"&gt;"Receiver@yourDomain.com"&lt;/span&gt;))&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; fromadx &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;New&lt;/span&gt; System.Net.Mail.MailAddress(&lt;span style="color: maroon;"&gt;"Sender@yourDomain.com"&lt;/span&gt;, &lt;span style="color: maroon;"&gt;"Sender Name"&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        msg.From = fromadx&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        msg.IsBodyHtml = &lt;span style="color: blue;"&gt;False&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        msg.Body = &lt;span style="color: maroon;"&gt;"Sample body..."&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt; &lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; strMem &lt;span style="color: blue;"&gt;As&lt;/span&gt; System.IO.MemoryStream = &lt;span style="color: blue;"&gt;New&lt;/span&gt; System.IO.MemoryStream(&lt;span style="color: blue;"&gt;CType&lt;/span&gt;(dt.Rows(0)(&lt;span style="color: maroon;"&gt;"ImageColumn"&lt;/span&gt;), &lt;span style="color: blue;"&gt;Byte&lt;/span&gt;()))&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; strWriter &lt;span style="color: blue;"&gt;As&lt;/span&gt; System.IO.StreamWriter = &lt;span style="color: blue;"&gt;New&lt;/span&gt; System.IO.StreamWriter(strMem)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        strWriter.Flush()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt; &lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        &lt;span style="color: green;"&gt;'this is very important..wont work without it&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        strMem.Position = 0&lt;/p&gt;
&lt;p style="margin: 0px;"&gt; &lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        &lt;span style="color: green;"&gt;'Filename and content type are hardcoded here, but I assume you get them from GetYourStuff() above&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; attachment &lt;span style="color: blue;"&gt;As&lt;/span&gt; System.Net.Mail.Attachment = &lt;span style="color: blue;"&gt;New&lt;/span&gt; System.Net.Mail.Attachment(strMem, &lt;span style="color: maroon;"&gt;"myFile.txt"&lt;/span&gt;, &lt;span style="color: maroon;"&gt;"text/plain"&lt;/span&gt;)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        msg.Attachments.Add(attachment)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; smtpClient &lt;span style="color: blue;"&gt;As&lt;/span&gt; System.Net.Mail.SmtpClient = &lt;span style="color: blue;"&gt;New&lt;/span&gt; System.Net.Mail.SmtpClient(ConfigurationManager.AppSettings.Item(&lt;span style="color: maroon;"&gt;"smtpserver"&lt;/span&gt;), 25)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;        smtpClient.Send(msg)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;    &lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;Function&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://geekswithblogs.net/SanjayU/aggbug/119155.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/SanjayU/comments/119155.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/SanjayU/comments/commentRss/119155.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/SanjayU/services/trackbacks/119155.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Alternatives to FindControl()?</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/SanjayU/archive/2008/01/24/118870.aspx" />
        <id>http://geekswithblogs.net/SanjayU/archive/2008/01/24/118870.aspx</id>
        <published>2008-01-24T12:55:21-05:00:00</published>
        <updated>2008-01-24T12:55:21Z</updated>
        <content type="html">Alright, as much as I try to avoid using FindControl() sometimes I need to get a control by its ID.  I came across what seems like a good idea here : &lt;a href="http://www.thescripts.com/forum/thread269592.html"&gt;http://www.thescripts.com/forum/thread269592.html&lt;br /&gt;
&lt;/a&gt;&lt;br /&gt;
It's in C#, but here is the VB.NET adaptation...&lt;br /&gt;
&lt;br /&gt;
&lt;!--
{\rtf1\ansi\ansicpg\lang1024\noproof1252\uc1 \deff0{\fonttbl{\f0\fnil\fcharset0\fprq1 Courier New;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0??;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;??\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;??\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;??\red192\green192\blue192;}??\fs20     \cf2 Private\cf0  \cf2 Sub\cf0  BuildControlHashTable()\par ??        \cf2 Dim\cf0  cName \cf2 As\cf0  \cf2 String\cf0  = \cf2 String\cf0 .Empty\par ??        \cf2 For\cf0  i \cf2 As\cf0  Int16 = 0 \cf2 To\cf0  \cf2 Me\cf0 .Controls.Count - 1\par ??            cName = \cf2 Me\cf0 .Controls(i).ID\par ??            \cf2 If\cf0  \cf2 Not\cf0  (cName \cf2 Is\cf0  \cf2 Nothing\cf0 ) \cf2 Then\par ??\cf0                 cntrlHashTbl.Add(cName, \cf2 Me\cf0 .Controls(i))\par ??            \cf2 End\cf0  \cf2 If\par ??\cf0         \cf2 Next\par ??\cf0     \cf2 End\cf0  \cf2 Sub\par ??\cf0     \cf2 Private\cf0  \cf2 Function\cf0  GetControlByName(\cf2 ByVal\cf0  cntrlName \cf2 As\cf0  \cf2 String\cf0 ) \cf2 As\cf0  Control\par ??        \cf2 Return\cf0  \cf2 CType\cf0 (\cf2 Me\cf0 .cntrlHashTbl(cntrlName), Control)\par ??    \cf2 End\cf0  \cf2 Function}
--&gt;
&lt;div style="background: white none repeat scroll 0%; font-family: Courier New; font-size: 10pt; color: black; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;"&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;  549&lt;/span&gt;     &lt;span style="color: blue;"&gt;Private&lt;/span&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt; BuildControlHashTable()&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;  550&lt;/span&gt;         &lt;span style="color: blue;"&gt;Dim&lt;/span&gt; cName &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; = &lt;span style="color: blue;"&gt;String&lt;/span&gt;.Empty&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;  551&lt;/span&gt;         &lt;span style="color: blue;"&gt;For&lt;/span&gt; i &lt;span style="color: blue;"&gt;As&lt;/span&gt; Int16 = 0 &lt;span style="color: blue;"&gt;To&lt;/span&gt; &lt;span style="color: blue;"&gt;Me&lt;/span&gt;.Controls.Count - 1&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;  552&lt;/span&gt;             cName = &lt;span style="color: blue;"&gt;Me&lt;/span&gt;.Controls(i).ID&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;  553&lt;/span&gt;             &lt;span style="color: blue;"&gt;If&lt;/span&gt; &lt;span style="color: blue;"&gt;Not&lt;/span&gt; (cName &lt;span style="color: blue;"&gt;Is&lt;/span&gt; &lt;span style="color: blue;"&gt;Nothing&lt;/span&gt;) &lt;span style="color: blue;"&gt;Then&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;  554&lt;/span&gt;                 cntrlHashTbl.Add(cName, &lt;span style="color: blue;"&gt;Me&lt;/span&gt;.Controls(i))&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;  555&lt;/span&gt;             &lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;If&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;  556&lt;/span&gt;         &lt;span style="color: blue;"&gt;Next&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;  557&lt;/span&gt;     &lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt;&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;  558&lt;/span&gt;     &lt;span style="color: blue;"&gt;Private&lt;/span&gt; &lt;span style="color: blue;"&gt;Function&lt;/span&gt; GetControlByName(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; cntrlName &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;) &lt;span style="color: blue;"&gt;As&lt;/span&gt; Control&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;  559&lt;/span&gt;         &lt;span style="color: blue;"&gt;Return&lt;/span&gt; &lt;span style="color: blue;"&gt;CType&lt;/span&gt;(&lt;span style="color: blue;"&gt;Me&lt;/span&gt;.cntrlHashTbl(cntrlName), Control)&lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;  560&lt;/span&gt;     &lt;span style="color: blue;"&gt;End&lt;/span&gt; &lt;span style="color: blue;"&gt;Function&lt;/span&gt;&lt;/p&gt;
&lt;br /&gt;
&lt;p style="margin: 0px;"&gt;Good idea? Bad idea? Thoughts? &lt;/p&gt;
&lt;p style="margin: 0px;"&gt;&lt;span style="color: blue;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;img src="http://geekswithblogs.net/SanjayU/aggbug/118870.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/SanjayU/comments/118870.aspx</wfw:comment>
        <slash:comments>1</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/SanjayU/comments/commentRss/118870.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/SanjayU/services/trackbacks/118870.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Export to vCard from .NET (VB.NET)</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/SanjayU/archive/2007/10/31/116495.aspx" />
        <id>http://geekswithblogs.net/SanjayU/archive/2007/10/31/116495.aspx</id>
        <published>2007-10-31T17:06:27-04:00:00</published>
        <updated>2007-10-31T17:06:27Z</updated>
        <content type="html">Hi all - &lt;br /&gt;
So was poking around a few weeks ago and couldn't find any code that'll allow me to export data to vcard...The class would require a little modification to utilize, but should get you 90% of the way there &lt;br /&gt;
&lt;br /&gt;
&lt;font size="2" color="#0000ff"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Partial&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Class&lt;/font&gt;&lt;font size="2"&gt; vCardExport&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Inherits&lt;/font&gt;&lt;font size="2"&gt;  System.Web.UI.Page&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; nameFirst &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"FirstName"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; nameLast &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"LastName"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; nameMiddle &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"MiddleName"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; nameTitle &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"Mr"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; email &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"firstname.lastname@domain.com"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; uRL &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"www.geekswithblogs.net/sanjayu"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; telephone &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"555 555  5555"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; fax &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"555 555  5555"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; mobile &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"555 555  5555"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; company &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"My  Company"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; department &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"My  Department"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; mtitle &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"My  Title"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; profession &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"My  Profession"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; office &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"227"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; addressTitle &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"New  York"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; streetName &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"42nd  Street"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; city &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"New  York"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; region &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"Northeast"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; postCode &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"00000"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Private&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Const&lt;/font&gt;&lt;font size="2"&gt; counTry &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"USA"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Protected&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Sub&lt;/font&gt;&lt;font size="2"&gt; Page_Init(&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; sender &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Object&lt;/font&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; e &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; System.EventArgs) &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Handles&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Me&lt;/font&gt;&lt;font size="2"&gt;.Init&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;eVCard.VCard(Response, nameFirst, nameLast, nameMiddle, nameTitle, email,  uRL, telephone, fax, mobile, company, department, mtitle, profession, office,  addressTitle, streetName, city, region, postCode, counTry)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Sub&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Class&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Class&lt;/font&gt;&lt;font size="2"&gt; eVCard&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Inherits&lt;/font&gt;&lt;font size="2"&gt;  System.ComponentModel.Component&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Public&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Shared&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Sub&lt;/font&gt;&lt;font size="2"&gt; VCard(&lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; response &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; HttpResponse _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; nameFirst  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; nameLast  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; nameMiddle  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; nameTitle  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; email  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; uRL  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; telephone  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; fax  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; mobile  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; company  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; department  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; title  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; profession  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; office  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; addressTitle  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; streetName  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; city  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; region  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; postCode  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt; _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;, &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;ByVal&lt;/font&gt;&lt;font size="2"&gt; counTry  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;String&lt;/font&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;response.Clear()&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;response.Charset = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;""&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2"&gt;response.ContentType = &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"text/x-vCard"&lt;/font&gt;&lt;/p&gt;
&lt;font size="2"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Dim&lt;/font&gt;&lt;font size="2"&gt; stringWrite  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt; System.IO.StringWriter  = &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;New&lt;/font&gt;&lt;font size="2"&gt;  System.IO.StringWriter()&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;Dim&lt;/font&gt;&lt;font size="2"&gt; htmlWrite  &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;As&lt;/font&gt;&lt;font size="2"&gt;  System.Web.UI.HtmlTextWriter = &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;New&lt;/font&gt;&lt;font size="2"&gt; HtmlTextWriter(stringWrite)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"BEGIN:VCARD"&lt;/font&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"VERSION:2.1"&lt;/font&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"N:"&lt;/font&gt;&lt;font size="2"&gt; + nameLast + &lt;/font&gt;&lt;font size="2" color="#800000"&gt;";"&lt;/font&gt;&lt;font size="2"&gt; +  nameFirst _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;+ &lt;/font&gt;&lt;font size="2" color="#800000"&gt;";"&lt;/font&gt;&lt;font size="2"&gt; + nameMiddle +  &lt;/font&gt;&lt;font size="2" color="#800000"&gt;";"&lt;/font&gt;&lt;font size="2"&gt; + nameTitle)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"FN:"&lt;/font&gt;&lt;font size="2"&gt; + nameFirst + &lt;/font&gt;&lt;font size="2" color="#800000"&gt;" "&lt;/font&gt;&lt;font size="2"&gt;  + nameMiddle _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;+ &lt;/font&gt;&lt;font size="2" color="#800000"&gt;" "&lt;/font&gt;&lt;font size="2"&gt; + nameLast)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"ORG:"&lt;/font&gt;&lt;font size="2"&gt; + company + &lt;/font&gt;&lt;font size="2" color="#800000"&gt;";"&lt;/font&gt;&lt;font size="2"&gt; +  department)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"URL;WORK:"&lt;/font&gt;&lt;font size="2"&gt; + uRL)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"TITLE:"&lt;/font&gt;&lt;font size="2"&gt; + title)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"ROLE:"&lt;/font&gt;&lt;font size="2"&gt; + profession)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"TEL;WORK;VOICE:"&lt;/font&gt;&lt;font size="2"&gt; + telephone)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"TEL;WORK;FAX:"&lt;/font&gt;&lt;font size="2"&gt; + fax)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"TEL;CELL;VOICE:"&lt;/font&gt;&lt;font size="2"&gt; + mobile)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"EMAIL;PREF;INTERNET:"&lt;/font&gt;&lt;font size="2"&gt; + email)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"ADR;WORK;ENCODING=QUOTED-PRINTABLE:"&lt;/font&gt;&lt;font size="2"&gt; + &lt;/font&gt;&lt;font size="2" color="#800000"&gt;";"&lt;/font&gt;&lt;font size="2"&gt; + _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;office + &lt;/font&gt;&lt;font size="2" color="#800000"&gt;";"&lt;/font&gt;&lt;font size="2"&gt; +  addressTitle + &lt;/font&gt;&lt;font size="2" color="#800000"&gt;"=0D"&lt;/font&gt;&lt;font size="2"&gt; +  streetName + &lt;/font&gt;&lt;font size="2" color="#800000"&gt;";"&lt;/font&gt;&lt;font size="2"&gt; + _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;city + &lt;/font&gt;&lt;font size="2" color="#800000"&gt;";"&lt;/font&gt;&lt;font size="2"&gt; + region +  &lt;/font&gt;&lt;font size="2" color="#800000"&gt;";"&lt;/font&gt;&lt;font size="2"&gt; + postCode +  &lt;/font&gt;&lt;font size="2" color="#800000"&gt;";"&lt;/font&gt;&lt;font size="2"&gt; + _&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;counTry)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;stringWrite.WriteLine(&lt;/font&gt;&lt;font size="2" color="#800000"&gt;"END:VCARD"&lt;/font&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;response.Write(stringWrite.ToString())&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2"&gt;response.End()&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Sub&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="2" color="#0000ff"&gt;End&lt;/font&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;font size="2" color="#0000ff"&gt;Class&lt;/font&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/SanjayU/aggbug/116495.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/SanjayU/comments/116495.aspx</wfw:comment>
        <slash:comments>3</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/SanjayU/comments/commentRss/116495.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/SanjayU/services/trackbacks/116495.aspx</trackback:ping>
    </entry>
    <entry>
        <title>"Cannot drop the queue 'SqlQueryNotificationService-{GUID}', because it does not exist or you do not have permission."</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/SanjayU/archive/2007/08/21/114844.aspx" />
        <id>http://geekswithblogs.net/SanjayU/archive/2007/08/21/114844.aspx</id>
        <published>2007-08-21T10:44:53-04:00:00</published>
        <updated>2007-08-21T10:44:53Z</updated>
        <content type="html">Working on my first SQL 2K5 application here...and came across this error trying to implement the SqlNotificationService.  I read a lot on this error...However, I was able to avoid this error by simply making the current user of own the DB.  &lt;br /&gt;
&lt;br /&gt;
1. Security &amp;gt; Users &amp;gt; [select the user your application is accessing the DB as]&lt;br /&gt;
2. Select properties (right click)&lt;br /&gt;
3. Find and check your DB schema in the list of "Owned Schemas"&lt;br /&gt;
4. Ensure "DB Owner" is checked off in the "Role Members" list&lt;br /&gt;
&lt;br /&gt;
That's it...&lt;img src="http://geekswithblogs.net/SanjayU/aggbug/114844.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://geekswithblogs.net/SanjayU/comments/114844.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://geekswithblogs.net/SanjayU/comments/commentRss/114844.aspx</wfw:commentRss>
        <trackback:ping>http://geekswithblogs.net/SanjayU/services/trackbacks/114844.aspx</trackback:ping>
    </entry>
    <entry>
        <title>SqlSiteMapProvider in VB.NET</title>
        <link rel="self" type="text/html" href="http://geekswithblogs.net/SanjayU/archive/2007/08/07/114455.aspx" />
        <id>http://geekswithblogs.net/SanjayU/archive/2007/08/07/114455.aspx</id>
        <published>2007-08-07T11:10:45-04:00:00</published>
        <updated>2008-06-18T11:44:09Z</updated>
        <content type="html">&lt;div style="font-family: Courier New;"&gt;
&lt;p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;font size="2"&gt;UPDATE 6.18.2008: You can download the file from &lt;a href="http://www.mediafire.com/?1vqezm2ezat" target="_blank"&gt;here&lt;/a&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;font size="2"&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;font size="2"&gt;Alright, so I wanted to build a dynamically/DB driven role-based menu  system utilizing framework 2.&lt;span style=""&gt;  &lt;/span&gt;I started  with this article… &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/02/WickedCode/"&gt;http://msdn.microsoft.com/msdnmag/issues/06/02/WickedCode/&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;font size="2"&gt;And then converted to VB.NET…Not to come across some items that I needed  to change…&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;font size="2"&gt;I came across the following errors:&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;font size="2"&gt;“'System.Web.Caching.CacheItemRemovedCallback' is a delegate type and  requires a single 'addressof' expression as the only argument to the  constructor”&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;font size="2"&gt;Which required this line “&lt;span style="font-size: 10pt; color: blue;"&gt;New&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;  CacheItemRemovedCallback(AOnSiteMapChanged))” in the BuildSiteMap() function to  be changed to “&lt;span style="color: blue;"&gt;New&lt;/span&gt;  CacheItemRemovedCallback(&lt;span style="color: blue;"&gt;AddressOf&lt;/span&gt;  OnSiteMapChanged))”&lt;span style=""&gt;  &lt;/span&gt;No  biggy.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;Then  there was some funky stuff going on with NULL values (mainly in the  “description” and “parentID” columns”&lt;span style=""&gt;   &lt;/span&gt;Turns out there was a bunch of this going on..&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Dim&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt; title  &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; =  IIf(reader.IsDBNull(_indexTitle), &lt;span style="color: blue;"&gt;Nothing&lt;/span&gt;,  reader.GetString(_indexTitle).Trim())&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;Which was  freaking out because of the NULL values (see &lt;a href="http://weblogs.asp.net/psteele/archive/2003/10/09/31250.aspx"&gt;http://weblogs.asp.net/psteele/archive/2003/10/09/31250.aspx&lt;/a&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;So I  added a simple function “CheckNullRefs” to account for that.&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;Lastly,  it looks like the “Roles” property from SqlSiteMapProvider was actually giving  me the _number_ of roles assigned to a siteMapNode rather than a collection of  the actual roles themselves.&lt;span style=""&gt;  &lt;/span&gt;So for  example roles=”2” instead of &lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;roles{0}=”Users”&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;roles(1)=”Admin”&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;I added a  public array list, and then added the line below to the  “CreateSiteMapNodeFromDataReader” function.&lt;span style=""&gt;   &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;roles =  ArrayList.Adapter(rolelist)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;I’m sure  there is a more elegant way to do all of this…but figured this would be helpful  since I found little to no info on it by googling.&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;font size="2"&gt;Update! I had a, uhm, "feature" in my code..the signature of the ReplaceNullRefs was wrong (was accepting ByVal rdrVal As &lt;span style="font-weight: bold;"&gt;String &lt;/span&gt;instead of &lt;span style="font-weight: bold;"&gt;Integer.  &lt;/span&gt;Thanks to &lt;span id="_user_Benjamin.Howarth@cmdev-associates.com" class="ppt"&gt;&lt;span class="lg"&gt;Benjamin Howarth for pointing this out!&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;font size="2"&gt;Update 9/20:  I've updated the ReplaceNullRefs function below, thanks Rob!&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt;&lt;br /&gt;
&lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;This  allows me to dynamically build my menu by doing the following in the  MenuItemDataBound sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Protected&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;Sub&lt;/span&gt; PublicMenu_MenuItemDataBound(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; sender &lt;span style="color: blue;"&gt;As&lt;/span&gt;  &lt;span style="color: blue;"&gt;Object&lt;/span&gt;, &lt;span style="color: blue;"&gt;ByVal&lt;/span&gt;  e &lt;span style="color: blue;"&gt;As&lt;/span&gt; MenuEventArgs)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;'Users can  be in multiple groups so...if the roles attribute of a siteMapNode contains one  of the roles that a user belongs to&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;'do not  remove it.&lt;span style=""&gt;  &lt;/span&gt;Remove all  others.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  (UserRoleName.Length) &amp;lt; 1 &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;UserRoleName =  Roles.GetRolesForUser()&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Dim&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  blmRemoveRole &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Boolean&lt;/span&gt; = &lt;span style="color: blue;"&gt;True&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt 0.5in; text-indent: 0.5in;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;For&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt; i &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt; = 0 &lt;span style="color: blue;"&gt;To&lt;/span&gt; UserRoleName.Length - 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;CType&lt;/span&gt;(e.Item.DataItem,  System.Web.SiteMapNode).Roles.Contains(UserRoleName(i)) &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;             &lt;/font&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;blmRemoveRole = &lt;span style="color: blue;"&gt;False&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Exit&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;For&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Next&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  blmRemoveRole &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  e.Item.Parent &lt;span style="color: blue;"&gt;Is&lt;/span&gt; &lt;span style="color: blue;"&gt;Nothing&lt;/span&gt; &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Me&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;.MainMenu.Items.Remove(e.Item)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Else&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                 &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;e.Item.Parent.ChildItems.Remove(e.Item)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Imports&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;  System&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Imports&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;  System.Web&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Imports&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;  System.Data.SqlClient&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Imports&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;  System.Collections.Specialized&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Imports&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;  System.Configuration&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Imports&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;  System.Web.Configuration&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Imports&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;  System.Collections.Generic&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Imports&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;  System.Configuration.Provider&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Imports&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;  System.Security.Permissions&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Imports&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;  System.Data.Common&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Imports&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;  System.Data&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Imports&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;  System.Web.Caching&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: green;"&gt;&lt;font size="2"&gt;'''  &lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray;"&gt;&lt;font size="2"&gt;&amp;lt;summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: green;"&gt;&lt;font size="2"&gt;'''  Summary description for SqlSiteMapProvider&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: green;"&gt;&lt;font size="2"&gt;'''  &lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt; color: gray;"&gt;&lt;font size="2"&gt;&amp;lt;/summary&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt;&amp;lt;SqlClientPermission(SecurityAction.Demand,  Unrestricted:=&lt;span style="color: blue;"&gt;True&lt;/span&gt;)&amp;gt; _&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;font size="2"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 10pt;"&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;Class&lt;/span&gt; SqlSiteMapProvider&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Inherits&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  StaticSiteMapProvider&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;Const&lt;/span&gt; _errmsg1 &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; = &lt;span style="color: maroon;"&gt;"Missing node ID"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;Const&lt;/span&gt; _errmsg2 &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; = &lt;span style="color: maroon;"&gt;"Duplicate node ID"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;Const&lt;/span&gt; _errmsg3 &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; = &lt;span style="color: maroon;"&gt;"Missing parent ID"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;Const&lt;/span&gt; _errmsg4 &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; = &lt;span style="color: maroon;"&gt;"Invalid parent ID"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;Const&lt;/span&gt; _errmsg5 &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; = &lt;span style="color: maroon;"&gt;"Empty or missing  connectionStringName"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;Const&lt;/span&gt; _errmsg6 &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; = &lt;span style="color: maroon;"&gt;"Missing connection string"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;Const&lt;/span&gt; _errmsg7 &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; = &lt;span style="color: maroon;"&gt;"Empty connection string"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;   &lt;/font&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;Const&lt;/span&gt; _errmsg8 &lt;span style="color: blue;"&gt;As&lt;/span&gt;  &lt;span style="color: blue;"&gt;String&lt;/span&gt; = &lt;span style="color: maroon;"&gt;"Invalid  sqlCacheDependency"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;Const&lt;/span&gt; _cacheDependencyName &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; = &lt;span style="color: maroon;"&gt;"__SiteMapCacheDependency"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: maroon;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: maroon;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  _connect &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' Database  connection string&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  _database &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;, _table &lt;span style="color: blue;"&gt;As&lt;/span&gt;  &lt;span style="color: blue;"&gt;String&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' Database info  for SQL Server 7/2000 cache dependency&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  _2005dependency &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Boolean&lt;/span&gt; = &lt;span style="color: blue;"&gt;False&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' Database info  for SQL Server 2005 cache dependency&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  _indexID &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;, _indexTitle &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;,  _indexUrl &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;, _indexDesc &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;,  _indexRoles &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;, _indexParent &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  _nodes &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;New&lt;/span&gt;  Dictionary(&lt;span style="color: blue;"&gt;Of&lt;/span&gt; &lt;span style="color: blue;"&gt;Integer&lt;/span&gt;, SiteMapNode)(16)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;ReadOnly&lt;/span&gt; _lock &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;New&lt;/span&gt; &lt;span style="color: blue;"&gt;Object&lt;/span&gt;()&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Private&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  _root &lt;span style="color: blue;"&gt;As&lt;/span&gt; SiteMapNode&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;'Added...Declare  an arraylist to hold all the roles this menu item applies  to&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  roles &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;New&lt;/span&gt;  ArrayList&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;Overloads&lt;/span&gt; &lt;span style="color: blue;"&gt;Overrides&lt;/span&gt; &lt;span style="color: blue;"&gt;Sub&lt;/span&gt;  Initialize(&lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; name &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;, &lt;span style="color: blue;"&gt;ByVal&lt;/span&gt; config &lt;span style="color: blue;"&gt;As&lt;/span&gt;  NameValueCollection)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' Verify  that config isn't null&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  config &lt;span style="color: blue;"&gt;Is&lt;/span&gt; &lt;span style="color: blue;"&gt;Nothing&lt;/span&gt; &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Throw&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;New&lt;/span&gt;  ArgumentNullException(&lt;span style="color: maroon;"&gt;"config"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' Assign the  provider a default name if it doesn't have one&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  [String].IsNullOrEmpty(Name) &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;Name = &lt;span style="color: maroon;"&gt;"SqlSiteMapProvider"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' Add a  default "description" attribute to config if the&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' attribute  doesnt exist or is empty&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;String&lt;/span&gt;.IsNullOrEmpty(config(&lt;span style="color: maroon;"&gt;"description"&lt;/span&gt;)) &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;config.Remove(&lt;span style="color: maroon;"&gt;"description"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;config.Add(&lt;span style="color: maroon;"&gt;"description"&lt;/span&gt;, &lt;span style="color: maroon;"&gt;"SQL  site map provider"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' Call the  base class's Initialize method&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;MyBase&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;.Initialize(Name, config)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' Initialize  _connect&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Dim&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  connect &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; = config(&lt;span style="color: maroon;"&gt;"connectionStringName"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  [String].IsNullOrEmpty(connect) &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Throw&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;New&lt;/span&gt;  ProviderException(_errmsg5)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;config.Remove(&lt;span style="color: maroon;"&gt;"connectionStringName"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  WebConfigurationManager.ConnectionStrings(connect) &lt;span style="color: blue;"&gt;Is&lt;/span&gt; &lt;span style="color: blue;"&gt;Nothing&lt;/span&gt; &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Throw&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;New&lt;/span&gt;  ProviderException(_errmsg6)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;_connect =  WebConfigurationManager.ConnectionStrings(connect).ConnectionString&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  [String].IsNullOrEmpty(_connect) &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Throw&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;New&lt;/span&gt;  ProviderException(_errmsg7)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' Initialize  SQL cache dependency info&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Dim&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  dependency &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; = config(&lt;span style="color: maroon;"&gt;"sqlCacheDependency"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;Not&lt;/span&gt; [String].IsNullOrEmpty(dependency) &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  [String].Equals(dependency, &lt;span style="color: maroon;"&gt;"CommandNotification"&lt;/span&gt;,  StringComparison.InvariantCultureIgnoreCase) &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                 &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;SqlDependency.Start(_connect)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;_2005dependency = &lt;span style="color: blue;"&gt;True&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Else&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' If  not "CommandNotification", then extract database and table  names&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Dim&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; info &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt;() = dependency.Split(&lt;span style="color: blue;"&gt;New&lt;/span&gt; &lt;span style="color: blue;"&gt;Char&lt;/span&gt;()  {":"c})&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; info.Length &amp;lt;&amp;gt; 2 &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Throw&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;New&lt;/span&gt;  ProviderException(_errmsg8)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;_database =  info(0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;_table =  info(1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;config.Remove(&lt;span style="color: maroon;"&gt;"sqlCacheDependency"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;'  SiteMapProvider processes the  securityTrimmingEnabled&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' attribute  but fails to remove it. Remove it now so we can&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' check for  unrecognized configuration attributes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: green;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  config(&lt;span style="color: maroon;"&gt;"securityTrimmingEnabled"&lt;/span&gt;) &lt;span style="color: blue;"&gt;IsNot&lt;/span&gt; &lt;span style="color: blue;"&gt;Nothing&lt;/span&gt; &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;config.Remove(&lt;span style="color: maroon;"&gt;"securityTrimmingEnabled"&lt;/span&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' Throw an  exception if unrecognized attributes remain&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  config.Count &amp;gt; 0 &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Dim&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; attr &lt;span style="color: blue;"&gt;As&lt;/span&gt; &lt;span style="color: blue;"&gt;String&lt;/span&gt; = config.GetKey(0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;Not&lt;/span&gt; [String].IsNullOrEmpty(attr) &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Throw&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;New&lt;/span&gt;  ProviderException(&lt;span style="color: maroon;"&gt;"Unrecognized attribute: "&lt;/span&gt;  + attr)&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;Sub&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Public&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  &lt;span style="color: blue;"&gt;Overloads&lt;/span&gt; &lt;span style="color: blue;"&gt;Overrides&lt;/span&gt; &lt;span style="color: blue;"&gt;Function&lt;/span&gt;  BuildSiteMap() &lt;span style="color: blue;"&gt;As&lt;/span&gt;  SiteMapNode&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;SyncLock&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; _lock&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&lt;font size="2"&gt;' Return  immediately if this method has been called before&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;If&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt;  _root &lt;span style="color: blue;"&gt;IsNot&lt;/span&gt; &lt;span style="color: blue;"&gt;Nothing&lt;/span&gt; &lt;span style="color: blue;"&gt;Then&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;                &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;Return&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; _root&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;font size="2"&gt;End&lt;/font&gt;&lt;/span&gt;&lt;font size="2"&gt; &lt;span style="color: blue;"&gt;If&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt; color: blue;"&gt;&lt;o:p&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0in 0in 0pt;"&gt;&lt;span style="font-size: 10pt;"&gt;&lt;span style=""&gt;&lt;font size="2"&gt;            &lt;/font&gt;&lt;/span&gt;&lt;span style="color: green;"&gt;&l