<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" 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:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>My Fried Tech! - Sharepoint 2007</title>
    <link>http://www.myfriedmind.com/techBlog/</link>
    <description>oddities from my work</description>
    <language>en-us</language>
    <copyright>Matt Mcknight</copyright>
    <lastBuildDate>Tue, 17 Aug 2010 14:07:49 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>matt@em.org</managingEditor>
    <webMaster>matt@em.org</webMaster>
    <item>
      <trackback:ping>http://www.myfriedmind.com/techBlog/Trackback.aspx?guid=732b2e19-45e1-4b53-8831-a60f74eacd3e</trackback:ping>
      <pingback:server>http://www.myfriedmind.com/techBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.myfriedmind.com/techBlog/PermaLink,guid,732b2e19-45e1-4b53-8831-a60f74eacd3e.aspx</pingback:target>
      <dc:creator>papabear</dc:creator>
      <wfw:comment>http://www.myfriedmind.com/techBlog/CommentView,guid,732b2e19-45e1-4b53-8831-a60f74eacd3e.aspx</wfw:comment>
      <wfw:commentRss>http://www.myfriedmind.com/techBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=732b2e19-45e1-4b53-8831-a60f74eacd3e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you want to use OWA webparts with Integrated Authentication or Basic and have it
default to the user that is logged on, the steps are simple - leave the username blank
(see below).
</p>
        <p>
          <img src="http://www.myfriedmind.com/techBlog/content/binary/mailConfiguration.gif" style="margin-left: 30px;" border="0" />
        </p>
        <p>
But if you have done that you may be surprised to find that it continually prompts
you to log in on that page EVEN THOUGH YOU ARE ALREADY logged on. 
<br /></p>
        <p>
          <img src="http://www.myfriedmind.com/techBlog/content/binary/loginPrompt.gif" style="margin-left: 30px;" border="0" />
        </p>
        <p>
Not putting in the info gives you a beautiful 401 error: 
</p>
        <p>
          <img src="http://www.myfriedmind.com/techBlog/content/binary/401Error.gif" style="margin-left: 30px;" border="1" />
        </p>
        <p>
Luckily the resolution is simple. 
<br /></p>
        <p>
What you want is that you will be logged on to the mail server with the current user
name and password. But if you open up the security settings on your browser you will
find out that this is not the option.
</p>
        <p>
          <img src="http://www.myfriedmind.com/techBlog/content/binary/logonwithuandp.gif" style="margin-left: 30px;" border="0" />
        </p>
        <p>
There are two ways to resolve this - both involve changing the setting. You can either
change the zone that it defaults to (ie make Local Intranet always do 'Automatic logon
with current user name and password') or you can put the mail server in the Trusted
Zones.
</p>
        <p>
I like the latter. 
<br /></p>
        <p>
Go into the Securities tab, click on 'Trusted Sites' icon and then click on the 'Sites'
button.
</p>
        <p>
          <img src="http://www.myfriedmind.com/techBlog/content/binary/trustedSitesTab.gif" style="margin-left: 30px;" border="0" />
          <br />
        </p>
        <p>
Once you are in there you can add the FQDN of the mail server (since you will be using
its cert)...
</p>
        <p>
          <img src="http://www.myfriedmind.com/techBlog/content/binary/trustedSite.gif" style="margin-left: 30px;" border="0" />
        </p>
        <p>
Voila!!! 
</p>
        <p>
Note: if you want to do this on a larger scale I would suggest you turn to your handy-dandy
Group Policy editor. You can find what you are looking for User Configuration / Windows
Settings. I will leave the rest of the steps up to you...<br /></p>
        <img src="http://www.myfriedmind.com/techBlog/content/binary/gpIESites.gif" style="margin-left: 30px;" border="0" />
        <img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=732b2e19-45e1-4b53-8831-a60f74eacd3e" />
      </body>
      <title>Sharepoint OWA Webparts Prompting for Username And Password</title>
      <guid isPermaLink="false">http://www.myfriedmind.com/techBlog/PermaLink,guid,732b2e19-45e1-4b53-8831-a60f74eacd3e.aspx</guid>
      <link>http://www.myfriedmind.com/techBlog/2010/08/17/SharepointOWAWebpartsPromptingForUsernameAndPassword.aspx</link>
      <pubDate>Tue, 17 Aug 2010 14:07:49 GMT</pubDate>
      <description>&lt;p&gt;
If you want to use OWA webparts with Integrated Authentication or Basic and have it
default to the user that is logged on, the steps are simple - leave the username blank
(see below).
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.myfriedmind.com/techBlog/content/binary/mailConfiguration.gif" style="margin-left: 30px;" border="0"&gt;
&lt;/p&gt;
&lt;p&gt;
But if you have done that you may be surprised to find that it continually prompts
you to log in on that page EVEN THOUGH YOU ARE ALREADY logged on. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.myfriedmind.com/techBlog/content/binary/loginPrompt.gif" style="margin-left: 30px;" border="0"&gt;
&lt;/p&gt;
&lt;p&gt;
Not putting in the info gives you a beautiful 401 error:&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.myfriedmind.com/techBlog/content/binary/401Error.gif" style="margin-left: 30px;" border="1"&gt;
&lt;/p&gt;
&lt;p&gt;
Luckily the resolution is simple. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
What you want is that you will be logged on to the mail server with the current user
name and password. But if you open up the security settings on your browser you will
find out that this is not the option.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.myfriedmind.com/techBlog/content/binary/logonwithuandp.gif" style="margin-left: 30px;" border="0"&gt;
&lt;/p&gt;
&lt;p&gt;
There are two ways to resolve this - both involve changing the setting. You can either
change the zone that it defaults to (ie make Local Intranet always do 'Automatic logon
with current user name and password') or you can put the mail server in the Trusted
Zones.
&lt;/p&gt;
&lt;p&gt;
I like the latter. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Go into the Securities tab, click on 'Trusted Sites' icon and then click on the 'Sites'
button.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.myfriedmind.com/techBlog/content/binary/trustedSitesTab.gif" style="margin-left: 30px;" border="0"&gt;
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Once you are in there you can add the FQDN of the mail server (since you will be using
its cert)...
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.myfriedmind.com/techBlog/content/binary/trustedSite.gif" style="margin-left: 30px;" border="0"&gt;
&lt;/p&gt;
&lt;p&gt;
Voila!!!&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Note: if you want to do this on a larger scale I would suggest you turn to your handy-dandy
Group Policy editor. You can find what you are looking for User Configuration / Windows
Settings. I will leave the rest of the steps up to you...&lt;br&gt;
&lt;/p&gt;
&lt;img src="http://www.myfriedmind.com/techBlog/content/binary/gpIESites.gif" style="margin-left: 30px;" border="0"&gt;&lt;img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=732b2e19-45e1-4b53-8831-a60f74eacd3e" /&gt;</description>
      <comments>http://www.myfriedmind.com/techBlog/CommentView,guid,732b2e19-45e1-4b53-8831-a60f74eacd3e.aspx</comments>
      <category>Sharepoint 2007</category>
      <category>Sharepoint 2010</category>
    </item>
    <item>
      <trackback:ping>http://www.myfriedmind.com/techBlog/Trackback.aspx?guid=71a0180d-b846-45e1-ac52-1195fdbc61c4</trackback:ping>
      <pingback:server>http://www.myfriedmind.com/techBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.myfriedmind.com/techBlog/PermaLink,guid,71a0180d-b846-45e1-ac52-1195fdbc61c4.aspx</pingback:target>
      <dc:creator>papabear</dc:creator>
      <wfw:comment>http://www.myfriedmind.com/techBlog/CommentView,guid,71a0180d-b846-45e1-ac52-1195fdbc61c4.aspx</wfw:comment>
      <wfw:commentRss>http://www.myfriedmind.com/techBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=71a0180d-b846-45e1-ac52-1195fdbc61c4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="ExternalClassE1FE3E60367B45DA917D5340D6F14E49">
          <div>I was exceedingly excited to think about using Sharepoint 2007 (MOSS to some)
as our Internet facing site. I had written the code for our previous site in Cold
Fusion over the a few years and was looking forward to laying down that burden...
</div>
          <div> 
</div>
          <div>MOSS seemed to have almost everything we did, plus a whole lot more. Imagine
my surprise when I discovered that as an Internet-facing site it leaves a lot to be
desired (and that at $40k). Now imagine me staying up until 2am for a few nights running
trying to find solutions. Now imagine me blowing milk out my nostrils... maybe not...
</div>
          <div> 
</div>
          <div>For a variety of reasons (which I will not go into here) I selected a "Publishing
Site with Workflow". Those of you who have worked with MOSS know that this automates
LOCKDOWN on all Lists so that Anon users can not view them. What they don't tell you
is that no matter what you do, even if you give them permissions to VIEW the list,
they can not ADD to the list. 
</div>
          <div> 
</div>
          <div>Now this is a problem because one of the reasons (among many) that I chose Sharepoint
was their integration with Infopath to easily create and publish forms. Now I was
discovering that anonymous users could pull up the form, they just could not submit
it. Unless, of course, we allowed them access to all the forms. The reason seems to
be tie back into Sharepoint's rather complex permission schemes. There are actually
three areas that need to be checked for permissions, sort of like three distinct committees.
Each has a stranglehold on one area and one type of connection. Since Sharepoint does
not recognize that there can be a variety of Anonymous users, and it can not distinguish
them, it becomes all or nothing.
</div>
          <div> 
</div>
          <div>I have tried a number of solutions - note these rather creative solutions - 
</div>
          <div>
            <br />
1 - <a href="http://kwizcom.blogspot.com/2007/06/anonymous-users-cannot-access-list.html">http://kwizcom.blogspot.com/2007/06/anonymous-users-cannot-access-list.html</a>.
Which does not work for submitting but does allow viewing. Note the steps on "unlocking",
"set permissions", "lock". Not easy or fun...
</div>
          <div>
            <br />
2 - Alternately you can use email -&gt; <a href="http://www.click2learn.ch/blog/Lists/Posts/Post.aspx?List=6b8a723c-02e0-48bb-a075-8f9eb21dbfbe&amp;ID=13">http://www.click2learn.ch/blog/Lists/Posts/Post.aspx?List=6b8a723c-02e0-48bb-a075-8f9eb21dbfbe&amp;ID=13</a> which
basically means they can fill out the form, but not submit it the library. 
</div>
          <div>
            <br />
3 - My favorite is this one -&gt; <a href="http://www.sharepointblogs.com/ervingayle/archive/2006/10/13/enabling-anonymous-users-to-open-and-submit-data-via-infopath-forms-published-to-sharepoint-2007.aspx">http://www.sharepointblogs.com/ervingayle/archive/2006/10/13/enabling-anonymous-users-to-open-and-submit-data-via-infopath-forms-published-to-sharepoint-2007.aspx</a> WHICH
DID NOT WORK FOR ME!!!!!!!!!!!!! However, it does display the really cool thing about
changing the querystring from DOCLIB to LIST. Who woulda thunk? If only it worked...
</div>
          <div> 
</div>
          <div>So, I am desperately asking, <font color="#ff0000">WHAT DO I DO????</font></div>
          <div> 
</div>
          <div>You can always use surveys (which won't work for a LOT of things), or you can
do some ninja-backdoor-coding, which I found on this amazing site for you --&gt;<br /><a href="http://www.paylasimnoktasi.com/en/anonymousinfopathforms.aspx">http://www.paylasimnoktasi.com/en/anonymousinfopathforms.aspx</a></div>
          <div> 
</div>
          <div>Basically you must
</div>
          <ol>
            <li>
setup a separate IIS Web App running a Webservice (it does not need to be exposed
externally) 
</li>
            <li>
Write a webservice to handle this (it will use identity impersonation and the app
pool account to convince the List that you really ARE someone). 
</li>
            <li>
Muck with InfoPath forms to pass the necc data to the webservice when submitting to
it.</li>
          </ol>
          <div>I must admit I probably would never have thought of this - so big thanks to
Nezih Tinas! I love techies on the web!!!
</div>
          <div> 
</div>
          <div>So here (as an example) is my very simple webservice code
</div>
          <div> 
</div>
          <div>&lt;%@ WebService Language="C#" Class="AnonFormSubmission" %&gt;<br />
using System;<br />
using System.Web;<br />
using System.Web.Services;<br />
using System.Web.Services.Protocols;<br />
using System.Security.Principal;<br />
using System.IO;<br />
using System.Text;<br />
using Microsoft.SharePoint;<br />
[WebService(Namespace = "<a href="http://tempuri.org/">http://tempuri.org/</a>")]<br />
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]<br />
public class AnonFormSubmission  : System.Web.Services.WebService {<br />
    [WebMethod]<br />
    public void SubmitToFormLibrary(string siteName, string webName,
string formLibraryName, string formXml)<br />
    {<br />
        WindowsImpersonationContext wic =<br />
        WindowsIdentity.GetCurrent().Impersonate();<br />
        string formName = Guid.NewGuid().ToString();<br />
        using (SPSite site = new SPSite(siteName
+ "/"))<br />
        {<br />
            site.AllowUnsafeUpdates
= true;<br />
            using (SPWeb web
= site.OpenWeb(webName))<br />
            {<br />
               
SPFolder folder = web.GetFolder(formLibraryName);<br />
               
foreach (SPFile file in folder.Files)<br />
               
{<br />
                   
if (file.Name.Replace(".xml", "") == formName)<br />
                       
throw new Exception("File name exists.");<br />
               
}<br />
               
folder.Files.Add(formName + ".xml", UnicodeEncoding.UTF8.GetBytes(formXml));<br />
               
web.Dispose();<br />
            }<br />
            site.Dispose();<br />
        }<br />
        wic.Undo();<br />
    }<br />
}
</div>
          <div> 
</div>
          <div>
            <em>Note 1</em> - If you are tweaking this, remember to either use 
<br />
Dispose your Web and Site objects or do the using container (which Disposes of them
for you). Otherwise you will start hemorraghing memory. I am paranoid and do both.
Incidently Disposing will automatically Close.
</div>
          <div> 
</div>
          <div>
            <em>Note 2</em> - I use a random GUID to create the Form name because it must
be unique, but as long as you make sure it is unique you should be good to go.
</div>
          <div> 
</div>
          <div>
            <em>Note 3</em> - You will need to tweak your web.config (at least I did) to
include a username/password that has permissions. This does not need to submit to
the web app extension that is Internet facing (I submit it to the root app which using
NTLM since it all goes into the same list and then use an NTLM account that I know
has access). Ex:
</div>
          <div>
            <br />
&lt;compilation debug="false"&gt;<br />
    &lt;assemblies&gt;<br />
        &lt;add assembly="Microsoft.SharePoint, 
<br />
           Version=12.0.0.0, Culture=neutral, 
<br />
           PublicKeyToken=71E9BCE111E9429C"/&gt;<br />
        &lt;/assemblies&gt;<br />
    &lt;/compilation&gt;<br />
&lt;authorization&gt;<br />
&lt;allow users="?" /&gt;<br />
&lt;/authorization&gt;<br />
&lt;identity impersonate="true"<br />
      userName="myDom\myUser" 
<br />
      password="mypassword" /&gt;<br />
&lt;authentication mode="Windows"/&gt;
</div>
          <div> 
</div>
          <div>This should enable you to submit to that list as myDom\myUser. You can encrypt
the web.config to be paranoid. Remember, paranoia is not a problem in IT, it is a
job requirement.
</div>
          <div> 
</div>
          <div>You can follow Nezih's directons for creating the infopath form. I should note
that this will have to be an administratively approved form.
</div>
          <div> 
</div>
          <div>
            <font color="#ff0000" size="3">
              <strong>WAIT!!! You're not done!!!</strong>
            </font>
          </div>
          <div> 
</div>
          <div>What you then need to do is go into the form library that you want to submit
it to and set this up as the default form. Then you can use all these nifty fields
in whatever view you want!!! Plus you have to modify the form library itself to not
launch it as Infopath. Then you will want to grab the URL. O, and <font color="#ff0000">DON'T
FORGET TO CHANGE THE TIMEOUT SETTINGS FOR INFOPATH!!!</font><br /></div>
        </div>
        <p>
        </p>
        <img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=71a0180d-b846-45e1-ac52-1195fdbc61c4" />
      </body>
      <title>Anonymous Form Submissions to Sharepoint 2007, or another MOSS issue on the Internet</title>
      <guid isPermaLink="false">http://www.myfriedmind.com/techBlog/PermaLink,guid,71a0180d-b846-45e1-ac52-1195fdbc61c4.aspx</guid>
      <link>http://www.myfriedmind.com/techBlog/2009/07/31/AnonymousFormSubmissionsToSharepoint2007OrAnotherMOSSIssueOnTheInternet.aspx</link>
      <pubDate>Fri, 31 Jul 2009 14:23:50 GMT</pubDate>
      <description>&lt;div class=ExternalClassE1FE3E60367B45DA917D5340D6F14E49&gt;
&lt;div&gt;I was exceedingly excited to think about using Sharepoint 2007 (MOSS to some)
as our Internet facing site. I had written the code for our previous site in Cold
Fusion over the&amp;nbsp;a few years and was looking forward to laying down that burden...
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;MOSS seemed to have almost everything we did, plus a whole lot more. Imagine
my surprise when I discovered that as an Internet-facing site it leaves a lot to be
desired (and that at $40k). Now imagine me staying up until 2am for a few nights running
trying to find solutions. Now imagine me blowing milk out my nostrils... maybe not...
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;For a variety of reasons (which I will not go into here) I selected a "Publishing
Site with Workflow". Those of you who have worked with MOSS know that this automates
LOCKDOWN on all Lists so that Anon users can not view them. What they don't tell you
is that no matter what you do, even if you give them permissions to VIEW the list,
they can not ADD to the list. 
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;Now this is a problem because one of the reasons (among many) that I chose Sharepoint
was their integration with Infopath to easily create and publish forms. Now I was
discovering that anonymous users could pull up the form, they just could not submit
it. Unless, of course, we allowed them access to all the forms. The reason seems to
be tie back into Sharepoint's rather complex permission schemes. There are actually
three areas that need to be checked for permissions, sort of like three distinct committees.
Each has a stranglehold on one area and one type of connection. Since Sharepoint does
not recognize that there can be a variety of Anonymous users, and it can not distinguish
them, it becomes all or nothing.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;I have tried a number of solutions - note these rather creative solutions - 
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
1 - &lt;a href="http://kwizcom.blogspot.com/2007/06/anonymous-users-cannot-access-list.html"&gt;http://kwizcom.blogspot.com/2007/06/anonymous-users-cannot-access-list.html&lt;/a&gt;.
Which does not work for submitting but does allow viewing. Note the steps on "unlocking",
"set permissions", "lock". Not easy or fun...
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
2 - Alternately you can use email -&amp;gt; &lt;a href="http://www.click2learn.ch/blog/Lists/Posts/Post.aspx?List=6b8a723c-02e0-48bb-a075-8f9eb21dbfbe&amp;amp;ID=13"&gt;http://www.click2learn.ch/blog/Lists/Posts/Post.aspx?List=6b8a723c-02e0-48bb-a075-8f9eb21dbfbe&amp;amp;ID=13&lt;/a&gt; which
basically means they can fill out the form, but not submit it the library. 
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
3 - My favorite is this one -&amp;gt; &lt;a href="http://www.sharepointblogs.com/ervingayle/archive/2006/10/13/enabling-anonymous-users-to-open-and-submit-data-via-infopath-forms-published-to-sharepoint-2007.aspx"&gt;http://www.sharepointblogs.com/ervingayle/archive/2006/10/13/enabling-anonymous-users-to-open-and-submit-data-via-infopath-forms-published-to-sharepoint-2007.aspx&lt;/a&gt; WHICH
DID NOT WORK FOR ME!!!!!!!!!!!!! However, it does display the really cool thing about
changing the querystring from DOCLIB to LIST. Who woulda thunk? If only it worked...
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;So, I am desperately asking, &lt;font color=#ff0000&gt;WHAT DO&amp;nbsp;I DO????&lt;/font&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;You can always use surveys (which won't work for a LOT of things), or you can
do some ninja-backdoor-coding, which I found on this amazing site for you --&amp;gt;&lt;br&gt;
&lt;a href="http://www.paylasimnoktasi.com/en/anonymousinfopathforms.aspx"&gt;http://www.paylasimnoktasi.com/en/anonymousinfopathforms.aspx&lt;/a&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;Basically you must
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
setup a separate IIS Web App running a Webservice (it does not need to be exposed
externally) 
&lt;li&gt;
Write a webservice to handle this (it will use identity impersonation and the app
pool account to convince the List that you really ARE someone). 
&lt;li&gt;
Muck with InfoPath forms to pass the necc data to the webservice when submitting to
it.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;I must admit I probably would never have thought of this -&amp;nbsp;so big thanks&amp;nbsp;to
Nezih Tinas! I love techies on the web!!!
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;So here (as an example) is my very simple webservice code
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;&amp;lt;%@ WebService Language="C#" Class="AnonFormSubmission" %&amp;gt;&lt;br&gt;
using System;&lt;br&gt;
using System.Web;&lt;br&gt;
using System.Web.Services;&lt;br&gt;
using System.Web.Services.Protocols;&lt;br&gt;
using System.Security.Principal;&lt;br&gt;
using System.IO;&lt;br&gt;
using System.Text;&lt;br&gt;
using Microsoft.SharePoint;&lt;br&gt;
[WebService(Namespace = "&lt;a href="http://tempuri.org/"&gt;http://tempuri.org/&lt;/a&gt;")]&lt;br&gt;
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]&lt;br&gt;
public class AnonFormSubmission&amp;nbsp; : System.Web.Services.WebService {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; [WebMethod]&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public void SubmitToFormLibrary(string siteName, string webName,
string formLibraryName, string formXml)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WindowsImpersonationContext wic =&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WindowsIdentity.GetCurrent().Impersonate();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string formName = Guid.NewGuid().ToString();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (SPSite site = new SPSite(siteName
+ "/"))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; site.AllowUnsafeUpdates
= true;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using (SPWeb web
= site.OpenWeb(webName))&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
SPFolder folder = web.GetFolder(formLibraryName);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
foreach (SPFile file in folder.Files)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
if (file.Name.Replace(".xml", "") == formName)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
throw new Exception("File name exists.");&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
folder.Files.Add(formName + ".xml", UnicodeEncoding.UTF8.GetBytes(formXml));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
web.Dispose();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; site.Dispose();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; wic.Undo();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
}
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;&lt;em&gt;Note 1&lt;/em&gt; - If you are tweaking this, remember to either use 
&lt;br&gt;
Dispose your Web and Site objects or do the using container (which Disposes of them
for you). Otherwise you will start hemorraghing memory. I am paranoid and do both.
Incidently Disposing will automatically Close.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;&lt;em&gt;Note 2&lt;/em&gt; - I use a random GUID to create the Form name because it must
be unique, but as long as you make sure it is unique you should be good to go.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;&lt;em&gt;Note 3&lt;/em&gt; - You will need to tweak your web.config (at least I did) to
include a username/password that has permissions. This does not need to submit to
the web app extension that is Internet facing (I submit it to the root app which using
NTLM since it all goes into the same list and then use an NTLM account that I know
has access). Ex:
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&amp;lt;compilation debug="false"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;assemblies&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;add assembly="Microsoft.SharePoint, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Version=12.0.0.0, Culture=neutral, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PublicKeyToken=71E9BCE111E9429C"/&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/assemblies&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/compilation&amp;gt;&lt;br&gt;
&amp;lt;authorization&amp;gt;&lt;br&gt;
&amp;lt;allow users="?" /&amp;gt;&lt;br&gt;
&amp;lt;/authorization&amp;gt;&lt;br&gt;
&amp;lt;identity impersonate="true"&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; userName="myDom\myUser" 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; password="mypassword" /&amp;gt;&lt;br&gt;
&amp;lt;authentication mode="Windows"/&amp;gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;This should enable you to submit to that list as myDom\myUser. You can encrypt
the web.config to be paranoid. Remember, paranoia is not a problem in IT, it is a
job requirement.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;You can follow Nezih's directons for creating the infopath form. I should note
that this will have to be an administratively approved form.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;&lt;font color=#ff0000 size=3&gt;&lt;strong&gt;WAIT!!! You're not done!!!&lt;/strong&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;What you then need to do is go into the form library that you want to submit
it to and set this up as the default form. Then you can use all these nifty fields
in whatever view you want!!! Plus you have to modify the form library itself to not
launch it as Infopath. Then you will want to grab the URL. O, and &lt;font color=#ff0000&gt;DON'T
FORGET TO CHANGE THE TIMEOUT SETTINGS FOR INFOPATH!!!&lt;/font&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=71a0180d-b846-45e1-ac52-1195fdbc61c4" /&gt;</description>
      <comments>http://www.myfriedmind.com/techBlog/CommentView,guid,71a0180d-b846-45e1-ac52-1195fdbc61c4.aspx</comments>
      <category>Sharepoint 2007</category>
    </item>
    <item>
      <trackback:ping>http://www.myfriedmind.com/techBlog/Trackback.aspx?guid=587ebe9c-f812-4c1f-9a6c-e7035fcdf3b0</trackback:ping>
      <pingback:server>http://www.myfriedmind.com/techBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.myfriedmind.com/techBlog/PermaLink,guid,587ebe9c-f812-4c1f-9a6c-e7035fcdf3b0.aspx</pingback:target>
      <dc:creator>papabear</dc:creator>
      <wfw:comment>http://www.myfriedmind.com/techBlog/CommentView,guid,587ebe9c-f812-4c1f-9a6c-e7035fcdf3b0.aspx</wfw:comment>
      <wfw:commentRss>http://www.myfriedmind.com/techBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=587ebe9c-f812-4c1f-9a6c-e7035fcdf3b0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div>I could not find a mention anywhere that with SP1 you still need to use
Addrule.exe for Forms based authentication crawls. I have hunted and hunted to verify,
but yes, Virginia, it appears you still do need to still use Addrule.exe with its
XML.
</div>
        <div> 
</div>
        <div>(Don't know what I am talking about -check it out here --&gt; <a href="http://technet.microsoft.com/en-us/library/bb852172.aspx">http://technet.microsoft.com/en-us/library/bb852172.aspx</a>)
</div>
        <div> 
</div>
        <div>Incidently - this whole mess with not being able to crawl FBA sites and having
to create a specific trimmer is another point demonstrating how it appears that Microsoft's
inclusion of the "internet facing site" FBA site in MOSS was an afterthought.
</div>
        <div> 
</div>
        <div>Suffice to say, not merely is there no documentation pointing out that you STILL
NEED TO USE ADDRULE, but the sample XML is wrong.
</div>
        <div> 
</div>
        <div>Here is the INCORRECT XML sample
</div>
        <div>
          <pre class="libCScode" id="ctl00_MTContentSelector1_mainContentContainer_ctl08xml" style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve">&lt;rules&gt;
  &lt;rule&gt;
    &lt;path&gt;http://<em>YourFormsAuthSite</em>/*&lt;/path&gt;
&lt;type&gt;FORM&lt;/type&gt; &lt;error_pages&gt; &lt;error_page&gt;Logon.aspx&lt;/error_page&gt;
&lt;/error_pages&gt; &lt;auth_url&gt;Logon.aspx&lt;/auth_url&gt; &lt;login_type&gt;POST&lt;/login_type&gt;
&lt;parameters&gt; &lt;param name="__VIEWSTATE"&gt;dDw0OTQzMjI0MjQ7O2w8UGVyc2lzdDs%2BPvhWhKKTnHpM3RIvgkgC9jJVpN%2Bg&lt;/param&gt;
&lt;param name="Login1%24UserName"&gt;FormsAuthUserName&lt;/param&gt; &lt;param name="Login1%24LoginButton"&gt;FormsAuthPassword&lt;/param&gt;
&lt;param name="Login1%24LoginButton"&gt;Log+In&lt;/param&gt; &lt;/parameters&gt;
&lt;/rule&gt; &lt;/rules&gt;</pre>
        </div>
        <div>Here is a CORRECT XML sample
</div>
        <div>&lt;rules ssp="SharedServices for MyServer"&gt;<br />
 &lt;rule&gt;<br />
  &lt;path&gt;http://www.myserver.com/*&lt;/path&gt;<br />
  &lt;type&gt;FORMS&lt;/type&gt;<br />
  &lt;auth_url&gt;http://www.myserver.com/_layouts/login.aspx?ReturnUrl=/&lt;/auth_url&gt;<br />
  &lt;login_type&gt;POST&lt;/login_type&gt;<br />
  &lt;error_pages&gt;<br />
   &lt;error_page&gt;login.aspx&lt;/error_page&gt;<br />
  &lt;/error_pages&gt;<br />
  &lt;parameters&gt;<br />
   &lt;param public="true" name="__VIEWSTATE"&gt;%2FwEPDwUKMTc0NDQ2ODkFgJmD2QWAmYYCAgMPZBYCAjU
</div>
        <div>PZBYCAgEPZBYCZg9kFgICDQ8QDxYCHgdDaGVja2VkaGRkZGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja
</div>
        <div>0tleV9fFgEFJmN0bDAwJFBsYWNlSG9sZGVyTWFpbiRsb2dpbiRSZW1lbWJlck1lYuMscsbPMGpHkju7j4uv5Gv%2BR
</div>
        <div>ds%3D&lt;/param&gt;<br />
   &lt;param public="true" name="ctl00%24PlaceHolderMain%24login%24UserName"&gt;myFBASearcherName&lt;/param&gt;<br />
   &lt;param public="true" name="ctl00%24PlaceHolderMain%24login%24password"&gt;myFBASearcherAccount&lt;/param&gt;<br />
   &lt;param public="true" name="ctl00%24PlaceHolderMain%24login%24login"&gt;Sign+In&lt;/param&gt;<br />
   &lt;param public="true" name="__EVENTVALIDATION"&gt;%2FwEWBQLxxc7nDwLE96mtBQLLtsPBAgLkkP7MCgK%2FlZyy
</div>
        <div>Bxv%sdf2B3qFhTCz8CUMXQiMVw&lt;/param&gt;<br />
  &lt;/parameters&gt;<br />
 &lt;/rule&gt;<br />
&lt;/rules&gt;
</div>
        <div> 
</div>
        <div>What are the differences?
</div>
        <ol>
          <li>
They have incorrect fieldnames (missing the Placeholders) and note the repetition
of LoginButton for the Password portion of the XML demo. Obviously someone simply
cut and pasted sections rather than pasting a complete, correct, XML 
</li>
          <li>
They do not have __EventValidation. Testing this with Fiddler emphasized the need
for that 
</li>
          <li>
They do not have public="true" in their params which can be useful - <span><b>public:</b> If
this value is not present, the parameter specified will be encrypted and stored in
the search system. For encrypted parameters, the size limit is 1,024 characters. If
you specify public = "true", the parameter will not be encrypted before storing in
the search system. Also, the parameters size limit increases to 4,096 characters.</span> </li>
        </ol>
        <div>Other Caveats
</div>
        <ul>
          <li>
Make sure the entries on both sides of the params are htmlencoded - use <a href="http://meyerweb.com/eric/tools/dencoder/">http://meyerweb.com/eric/tools/dencoder/</a> if
you need help... 
</li>
          <li>
Remember that this DOES NOT do security trimming. You still need to setup an FBA security
trimmer - see <a href="http://technet.microsoft.com/en-us/library/bb852172.aspx#moss12_SearchFormsAuth_ImplementSecurityTrimmer">http://technet.microsoft.com/en-us/library/bb852172.aspx#moss12_SearchFormsAuth_ImplementSecurityTrimmer</a> for
info on that...</li>
        </ul>
        <img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=587ebe9c-f812-4c1f-9a6c-e7035fcdf3b0" />
      </body>
      <title>Msoft AddRule example is Incorrect</title>
      <guid isPermaLink="false">http://www.myfriedmind.com/techBlog/PermaLink,guid,587ebe9c-f812-4c1f-9a6c-e7035fcdf3b0.aspx</guid>
      <link>http://www.myfriedmind.com/techBlog/2009/07/28/MsoftAddRuleExampleIsIncorrect.aspx</link>
      <pubDate>Tue, 28 Jul 2009 14:17:13 GMT</pubDate>
      <description>&lt;div&gt;I could not find a&amp;nbsp;mention anywhere that with SP1 you still need to use
Addrule.exe for Forms based authentication crawls. I have hunted and hunted to verify,
but yes, Virginia, it appears you still do need to still use Addrule.exe with its
XML.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;(Don't know what I am talking about -check it out here --&amp;gt; &lt;a href="http://technet.microsoft.com/en-us/library/bb852172.aspx"&gt;http://technet.microsoft.com/en-us/library/bb852172.aspx&lt;/a&gt;)
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;Incidently - this whole mess with not being able to crawl FBA sites and having
to create a specific trimmer is another point demonstrating how it appears that Microsoft's
inclusion of the "internet facing site" FBA site&amp;nbsp;in MOSS was an afterthought.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;Suffice to say, not merely is there no documentation pointing out that you STILL
NEED TO USE ADDRULE, but the sample XML is wrong.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;Here is the INCORRECT XML sample
&lt;/div&gt;
&lt;div&gt;&lt;pre class=libCScode id=ctl00_MTContentSelector1_mainContentContainer_ctl08xml style="WORD-BREAK: break-all; WORD-WRAP: break-word" space="preserve"&gt;&amp;lt;rules&amp;gt;
  &amp;lt;rule&amp;gt;
    &amp;lt;path&amp;gt;http://&lt;em&gt;YourFormsAuthSite&lt;/em&gt;/*&amp;lt;/path&amp;gt;
&amp;lt;type&amp;gt;FORM&amp;lt;/type&amp;gt; &amp;lt;error_pages&amp;gt; &amp;lt;error_page&amp;gt;Logon.aspx&amp;lt;/error_page&amp;gt;
&amp;lt;/error_pages&amp;gt; &amp;lt;auth_url&amp;gt;Logon.aspx&amp;lt;/auth_url&amp;gt; &amp;lt;login_type&amp;gt;POST&amp;lt;/login_type&amp;gt;
&amp;lt;parameters&amp;gt; &amp;lt;param name="__VIEWSTATE"&amp;gt;dDw0OTQzMjI0MjQ7O2w8UGVyc2lzdDs%2BPvhWhKKTnHpM3RIvgkgC9jJVpN%2Bg&amp;lt;/param&amp;gt;
&amp;lt;param name="Login1%24UserName"&amp;gt;FormsAuthUserName&amp;lt;/param&amp;gt; &amp;lt;param name="Login1%24LoginButton"&amp;gt;FormsAuthPassword&amp;lt;/param&amp;gt;
&amp;lt;param name="Login1%24LoginButton"&amp;gt;Log+In&amp;lt;/param&amp;gt; &amp;lt;/parameters&amp;gt;
&amp;lt;/rule&amp;gt; &amp;lt;/rules&amp;gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;Here is a CORRECT XML sample
&lt;/div&gt;
&lt;div&gt;&amp;lt;rules ssp="SharedServices for MyServer"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;lt;rule&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;path&amp;gt;http://www.myserver.com/*&amp;lt;/path&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;type&amp;gt;FORMS&amp;lt;/type&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;auth_url&amp;gt;http://www.myserver.com/_layouts/login.aspx?ReturnUrl=/&amp;lt;/auth_url&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;login_type&amp;gt;POST&amp;lt;/login_type&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;error_pages&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;error_page&amp;gt;login.aspx&amp;lt;/error_page&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;/error_pages&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;parameters&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;param public="true" name="__VIEWSTATE"&amp;gt;%2FwEPDwUKMTc0NDQ2ODkFgJmD2QWAmYYCAgMPZBYCAjU
&lt;/div&gt;
&lt;div&gt;PZBYCAgEPZBYCZg9kFgICDQ8QDxYCHgdDaGVja2VkaGRkZGQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja
&lt;/div&gt;
&lt;div&gt;0tleV9fFgEFJmN0bDAwJFBsYWNlSG9sZGVyTWFpbiRsb2dpbiRSZW1lbWJlck1lYuMscsbPMGpHkju7j4uv5Gv%2BR
&lt;/div&gt;
&lt;div&gt;ds%3D&amp;lt;/param&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;param public="true" name="ctl00%24PlaceHolderMain%24login%24UserName"&amp;gt;myFBASearcherName&amp;lt;/param&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;param public="true" name="ctl00%24PlaceHolderMain%24login%24password"&amp;gt;myFBASearcherAccount&amp;lt;/param&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;param public="true" name="ctl00%24PlaceHolderMain%24login%24login"&amp;gt;Sign+In&amp;lt;/param&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;param public="true" name="__EVENTVALIDATION"&amp;gt;%2FwEWBQLxxc7nDwLE96mtBQLLtsPBAgLkkP7MCgK%2FlZyy
&lt;/div&gt;
&lt;div&gt;Bxv%sdf2B3qFhTCz8CUMXQiMVw&amp;lt;/param&amp;gt;&lt;br&gt;
&amp;nbsp; &amp;lt;/parameters&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;lt;/rule&amp;gt;&lt;br&gt;
&amp;lt;/rules&amp;gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;What are the differences?
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;
They have incorrect fieldnames (missing the Placeholders) and note the repetition
of LoginButton for the Password portion of the XML demo. Obviously someone simply
cut and pasted sections rather than pasting a complete, correct, XML 
&lt;li&gt;
They do not have __EventValidation. Testing this with Fiddler emphasized the need
for that 
&lt;li&gt;
They do not have public="true" in their params which can be useful - &lt;span&gt;&lt;b&gt;public:&lt;/b&gt; If
this value is not present, the parameter specified will be encrypted and stored in
the search system. For encrypted parameters, the size limit is 1,024 characters. If
you specify public = "true", the parameter will not be encrypted before storing in
the search system. Also, the parameters size limit increases to 4,096 characters.&lt;/span&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;Other Caveats
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
Make sure the entries on both sides of the params are htmlencoded - use &lt;a href="http://meyerweb.com/eric/tools/dencoder/"&gt;http://meyerweb.com/eric/tools/dencoder/&lt;/a&gt;&amp;nbsp;if
you need help... 
&lt;li&gt;
Remember that this DOES NOT do security trimming. You still need to setup an FBA security
trimmer - see &lt;a href="http://technet.microsoft.com/en-us/library/bb852172.aspx#moss12_SearchFormsAuth_ImplementSecurityTrimmer"&gt;http://technet.microsoft.com/en-us/library/bb852172.aspx#moss12_SearchFormsAuth_ImplementSecurityTrimmer&lt;/a&gt;&amp;nbsp;for
info on that...&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=587ebe9c-f812-4c1f-9a6c-e7035fcdf3b0" /&gt;</description>
      <comments>http://www.myfriedmind.com/techBlog/CommentView,guid,587ebe9c-f812-4c1f-9a6c-e7035fcdf3b0.aspx</comments>
      <category>Sharepoint 2007</category>
    </item>
    <item>
      <trackback:ping>http://www.myfriedmind.com/techBlog/Trackback.aspx?guid=3cb459b3-e0da-439e-9e9d-50a385f4b458</trackback:ping>
      <pingback:server>http://www.myfriedmind.com/techBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.myfriedmind.com/techBlog/PermaLink,guid,3cb459b3-e0da-439e-9e9d-50a385f4b458.aspx</pingback:target>
      <dc:creator>papabear</dc:creator>
      <wfw:comment>http://www.myfriedmind.com/techBlog/CommentView,guid,3cb459b3-e0da-439e-9e9d-50a385f4b458.aspx</wfw:comment>
      <wfw:commentRss>http://www.myfriedmind.com/techBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=3cb459b3-e0da-439e-9e9d-50a385f4b458</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I was installing a new Sharepoint Server in the farm, mostly because the currently
had was too small. 
</p>
        <p>
I ran into errors with the Office Server Web Services (it kept saying it could not
find the path, although the path to that website was fine (I checked it three times).
The Root virtual directory could not be found...
</p>
        <p>
          <img src="http://www.myfriedmind.com/techBlog/content/binary/DiagnosticsLogError1.gif" border="0" />
        </p>
        <p>
I tried many things. Finally I ran the Office wizard to remove the new server from
the farm. I then ran it again to reinstall it (after making sure that various dbs
had the Sharepoint Server as a user - see previous log). And I got the error below: 
</p>
        <p>
          <img src="http://www.myfriedmind.com/techBlog/content/binary/DiagnosticsLogError2.gif" border="0" />
        </p>
        <p>
The error in the log informed me that I it was missing the location of the Diagnostics
Logs that I had moved to the E: drive on the old, slow server. So I moved the Diagnostics
logs to the D: drive before running the wizard to try to join the farm again. No dice.
Same error. I moved the logs back to there original locale in the 12-spot. No dice.<br />
 <br />
I try renaming the D: drive to E: - it refuses. 
<br />
 <br />
On the point of uninstalling/reinstalling MOSS on the new server I hesitate... 
<br />
 <br />
Searching through Regedit in the NEW server (not currently on the Farm) I find an
entry in HKLM\Software\Microsoft\Shared Tools\Web Server Extensions\12.0\WSS called
LogDir. And guess what is in it? You got it - a reference to the entry on the E: drive...<br />
 <br />
Manually changed the regedit entry to match to the new d: location (on both servers)
and VOILA!!!<br />
 <br />
So be warned - if you move the Diagnostics Logs location in a farm, a folder must
be available on ALL servers (makes sense). 
<br />
 <br />
And the Office Server IIS site is gone. Probably a carryover from before...<br /></p>
        <img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=3cb459b3-e0da-439e-9e9d-50a385f4b458" />
      </body>
      <title>Installation Error if Diagnostics Log location moved...</title>
      <guid isPermaLink="false">http://www.myfriedmind.com/techBlog/PermaLink,guid,3cb459b3-e0da-439e-9e9d-50a385f4b458.aspx</guid>
      <link>http://www.myfriedmind.com/techBlog/2009/06/11/InstallationErrorIfDiagnosticsLogLocationMoved.aspx</link>
      <pubDate>Thu, 11 Jun 2009 19:26:18 GMT</pubDate>
      <description>&lt;p&gt;
I was installing a new Sharepoint Server in the farm, mostly because the currently
had was too small. 
&lt;/p&gt;
&lt;p&gt;
I ran into errors with the Office Server Web Services (it kept saying it could not
find the path, although the path to that website was fine (I checked it three times).
The Root virtual directory could not be found...
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.myfriedmind.com/techBlog/content/binary/DiagnosticsLogError1.gif" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
I tried many things. Finally I ran the Office wizard to remove the new server from
the farm. I then ran it again to reinstall it (after making sure that various dbs
had the Sharepoint Server as a user - see previous log). And I got the error below: 
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.myfriedmind.com/techBlog/content/binary/DiagnosticsLogError2.gif" border=0&gt;
&lt;/p&gt;
&lt;p&gt;
The error in the log informed me that I it was missing the location of the Diagnostics
Logs that I had moved to the E: drive on the old, slow server. So I moved the Diagnostics
logs to the D: drive before running the wizard to try to join the farm again. No dice.
Same error. I moved the logs back to there original locale in the 12-spot. No dice.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
I try renaming the D: drive to E: - it refuses. 
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
On the point of uninstalling/reinstalling MOSS on the new server I hesitate... 
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
Searching through Regedit in the NEW server (not currently on the Farm) I find an
entry in HKLM\Software\Microsoft\Shared Tools\Web Server Extensions\12.0\WSS called
LogDir. And guess what is in it? You got it - a reference to the entry on the E: drive...&lt;br&gt;
&amp;nbsp;&lt;br&gt;
Manually changed the regedit entry to match to the new d: location (on both servers)
and VOILA!!!&lt;br&gt;
&amp;nbsp;&lt;br&gt;
So be warned - if you move the Diagnostics Logs location in a farm, a folder must
be available on ALL servers (makes sense). 
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
And the Office Server IIS site is gone. Probably a carryover from before...&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=3cb459b3-e0da-439e-9e9d-50a385f4b458" /&gt;</description>
      <comments>http://www.myfriedmind.com/techBlog/CommentView,guid,3cb459b3-e0da-439e-9e9d-50a385f4b458.aspx</comments>
      <category>Sharepoint 2007</category>
    </item>
    <item>
      <trackback:ping>http://www.myfriedmind.com/techBlog/Trackback.aspx?guid=793592db-0a9f-426e-8520-75e3dd328789</trackback:ping>
      <pingback:server>http://www.myfriedmind.com/techBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.myfriedmind.com/techBlog/PermaLink,guid,793592db-0a9f-426e-8520-75e3dd328789.aspx</pingback:target>
      <dc:creator>papabear</dc:creator>
      <wfw:comment>http://www.myfriedmind.com/techBlog/CommentView,guid,793592db-0a9f-426e-8520-75e3dd328789.aspx</wfw:comment>
      <wfw:commentRss>http://www.myfriedmind.com/techBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=793592db-0a9f-426e-8520-75e3dd328789</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div>You may get an error like:
</div>
        <div> 
</div>
        <div>
          <i>Cannot open database requested in login 'SharedServicesDatabase'. Login fails.<br />
Login failed for user ' MYDOMAIN\MyServer$'.</i> Description: An unhandled exception
occurred during the execution of the current web request. Please review the stack
trace for more information about the error and where it originated in the code. 
<br /><br /><b>Exception Details: </b>System.Data.SqlClient.SqlException: Cannot open database
requested in login 'SharedServicesDatabase'. Login fails.<br />
Login failed for user ' MYDOMAIN\MyServer$'.
</div>
        <div> 
</div>
        <div>This is triggered by the odd fact (which I can not find documented anywhere)
that the server that is housing the Sharepoint site must have its computer account
listed as a user within the Shared Services database for the search to function. 
</div>
        <p>
        </p>
        <img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=793592db-0a9f-426e-8520-75e3dd328789" />
      </body>
      <title>Cannot open database requested in login 'SharedServicesDatabase'. Login fails. Login failed for user MYDOMAIN\MyServer$</title>
      <guid isPermaLink="false">http://www.myfriedmind.com/techBlog/PermaLink,guid,793592db-0a9f-426e-8520-75e3dd328789.aspx</guid>
      <link>http://www.myfriedmind.com/techBlog/2009/06/02/CannotOpenDatabaseRequestedInLoginSharedServicesDatabaseLoginFailsLoginFailedForUserMYDOMAINMyServer.aspx</link>
      <pubDate>Tue, 02 Jun 2009 17:45:15 GMT</pubDate>
      <description>&lt;div&gt;You may get an error like:
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;&lt;i&gt;Cannot open database requested in login 'SharedServicesDatabase'. Login fails.&lt;br&gt;
Login failed for user ' MYDOMAIN\MyServer$'.&lt;/i&gt; Description: An unhandled exception
occurred during the execution of the current web request. Please review the stack
trace for more information about the error and where it originated in the code. 
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Exception Details: &lt;/b&gt;System.Data.SqlClient.SqlException: Cannot open database
requested in login 'SharedServicesDatabase'. Login fails.&lt;br&gt;
Login failed for user ' MYDOMAIN\MyServer$'.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;This is triggered by the odd fact (which I can not find documented anywhere)
that the server that is housing the Sharepoint site must have its computer account
listed as a user within the Shared Services database for the search to function. 
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=793592db-0a9f-426e-8520-75e3dd328789" /&gt;</description>
      <comments>http://www.myfriedmind.com/techBlog/CommentView,guid,793592db-0a9f-426e-8520-75e3dd328789.aspx</comments>
      <category>Sharepoint 2007</category>
      <category>Sql</category>
    </item>
    <item>
      <trackback:ping>http://www.myfriedmind.com/techBlog/Trackback.aspx?guid=707b3a0b-4fa6-4102-96f3-c62f7a0131cf</trackback:ping>
      <pingback:server>http://www.myfriedmind.com/techBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.myfriedmind.com/techBlog/PermaLink,guid,707b3a0b-4fa6-4102-96f3-c62f7a0131cf.aspx</pingback:target>
      <dc:creator>papabear</dc:creator>
      <wfw:comment>http://www.myfriedmind.com/techBlog/CommentView,guid,707b3a0b-4fa6-4102-96f3-c62f7a0131cf.aspx</wfw:comment>
      <wfw:commentRss>http://www.myfriedmind.com/techBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=707b3a0b-4fa6-4102-96f3-c62f7a0131cf</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="ExternalClass9960326292E349449324D10CBF64532D">
          <div>I had setup AAM w/ Sharepoint and our ISA servers. What had not occured to me
was that the Connection Verifier was tied to port 80 (I had not put it somewhere else).
So when I removed that site *boom*. 
</div>
          <div> 
</div>
          <div>Changed ISA Verifier to the correct port and it works fine...
</div>
        </div>
        <p>
        </p>
        <img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=707b3a0b-4fa6-4102-96f3-c62f7a0131cf" />
      </body>
      <title>Note to self - watch out for ISA 2006 Listeners and Sharepoint AAM</title>
      <guid isPermaLink="false">http://www.myfriedmind.com/techBlog/PermaLink,guid,707b3a0b-4fa6-4102-96f3-c62f7a0131cf.aspx</guid>
      <link>http://www.myfriedmind.com/techBlog/2009/06/01/NoteToSelfWatchOutForISA2006ListenersAndSharepointAAM.aspx</link>
      <pubDate>Mon, 01 Jun 2009 17:43:34 GMT</pubDate>
      <description>&lt;div class="ExternalClass9960326292E349449324D10CBF64532D"&gt;
&lt;div&gt;I had setup AAM w/ Sharepoint and our ISA servers. What had not occured to me
was that the Connection Verifier was tied to port 80 (I had not put it somewhere else).
So when I removed that site *boom*. 
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;Changed ISA Verifier to the correct port and it works fine...
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=707b3a0b-4fa6-4102-96f3-c62f7a0131cf" /&gt;</description>
      <comments>http://www.myfriedmind.com/techBlog/CommentView,guid,707b3a0b-4fa6-4102-96f3-c62f7a0131cf.aspx</comments>
      <category>Isa 2006</category>
      <category>Sharepoint 2007</category>
    </item>
    <item>
      <trackback:ping>http://www.myfriedmind.com/techBlog/Trackback.aspx?guid=95485292-f727-4ee4-ba52-a2a5408992df</trackback:ping>
      <pingback:server>http://www.myfriedmind.com/techBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.myfriedmind.com/techBlog/PermaLink,guid,95485292-f727-4ee4-ba52-a2a5408992df.aspx</pingback:target>
      <dc:creator>papabear</dc:creator>
      <wfw:comment>http://www.myfriedmind.com/techBlog/CommentView,guid,95485292-f727-4ee4-ba52-a2a5408992df.aspx</wfw:comment>
      <wfw:commentRss>http://www.myfriedmind.com/techBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=95485292-f727-4ee4-ba52-a2a5408992df</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="ExternalClass52C4743AB29244A29CE45054E81437A5">
          <div>Recently ran across this trying to install a customized webpart. Starting going
over everything with a fine tooth comb. Even mocked up a .wepbart xml to get it to
run.
</div>
          <div> 
</div>
          <div>Finally ran it in VS2005 on a 'test' site - turns out I had forgotten to add <font color="#ff0000" size="4">PUBLIC</font> to
the class so that it could be accessed.
</div>
          <div> 
</div>
          <div>ooops. won't do that again. actually I probably will...
</div>
          <div> 
</div>
          <div>;-)
</div>
          <div> 
</div>
          <div>Once again, another verbose Sharepoint Message...
</div>
        </div>
        <p>
        </p>
        <img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=95485292-f727-4ee4-ba52-a2a5408992df" />
      </body>
      <title>Unable to add selected web part(s). Cannot import this Web Part.</title>
      <guid isPermaLink="false">http://www.myfriedmind.com/techBlog/PermaLink,guid,95485292-f727-4ee4-ba52-a2a5408992df.aspx</guid>
      <link>http://www.myfriedmind.com/techBlog/2009/05/28/UnableToAddSelectedWebPartsCannotImportThisWebPart.aspx</link>
      <pubDate>Thu, 28 May 2009 19:32:38 GMT</pubDate>
      <description>&lt;div class=ExternalClass52C4743AB29244A29CE45054E81437A5&gt;
&lt;div&gt;Recently ran across this trying to install a customized webpart. Starting going
over everything with a fine tooth comb. Even mocked up a .wepbart xml to get it to
run.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;Finally ran it in VS2005 on a 'test' site - turns out I had forgotten to add &lt;font color=#ff0000 size=4&gt;PUBLIC&lt;/font&gt; to
the class so that it could be accessed.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;ooops. won't do that again. actually I probably will...
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;;-)
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;Once again, another verbose Sharepoint Message...
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=95485292-f727-4ee4-ba52-a2a5408992df" /&gt;</description>
      <comments>http://www.myfriedmind.com/techBlog/CommentView,guid,95485292-f727-4ee4-ba52-a2a5408992df.aspx</comments>
      <category>Asp.Net</category>
      <category>c#</category>
      <category>Sharepoint 2007</category>
    </item>
    <item>
      <trackback:ping>http://www.myfriedmind.com/techBlog/Trackback.aspx?guid=33225981-19d9-46b6-8362-5e84b7b2b19c</trackback:ping>
      <pingback:server>http://www.myfriedmind.com/techBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.myfriedmind.com/techBlog/PermaLink,guid,33225981-19d9-46b6-8362-5e84b7b2b19c.aspx</pingback:target>
      <dc:creator>papabear</dc:creator>
      <wfw:comment>http://www.myfriedmind.com/techBlog/CommentView,guid,33225981-19d9-46b6-8362-5e84b7b2b19c.aspx</wfw:comment>
      <wfw:commentRss>http://www.myfriedmind.com/techBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=33225981-19d9-46b6-8362-5e84b7b2b19c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div>I was being a good boy *SHOCK* and encrypting my web.config sections on my MOSS
server like I was supposed to. Except...
</div>
        <div> 
</div>
        <div>Except...
</div>
        <div> 
</div>
        <div>It worked like a charm on the Windows authentication side, but the FBA side was
all wacky. Throwing: 
</div>
        <div>
          <font color="#ff0000" size="1">
            <p>
Failed to decrypt using provider 'MossCustomKey'. Error message from the provider:
The RSA key container could not be opened. 
</p>
          </font>
        </div>
        <div>So what to do? After a bunch o hunting I kept coming across this issue - it is
permissions - need to allow the account to have permissions. 
</div>
        <div> 
</div>
        <div>This is easly accomplished using the aspnet_regiis -pa "MyCustomKey" "AccountToGiveAccess"
command line. But what account?
</div>
        <div> 
</div>
        <div>I tried "Nt Service". I tried "ASPNET". I tried the Application Pool account.
But here is the clincher, because this allows Anonymous access, the account is whatever
you have the Anonymous Account set to in IIS - EVEN AFTER YOU HAVE LOGGED ON
USING FBA!!!!
</div>
        <div> 
</div>
        <div>This comes from the &lt;identity impersonate='true' /&gt; line in the web.config
and how Sharepoint uses it. Note that you COULD set a specific impersonate there,
but I am not sure you really want to (although I may experiment more in my quest to
enable Sharepoint to assign anon permissions at a page, not subsite, level).
</div>
        <div> 
</div>
        <div>So what was the account - simply the %machinename%\IUSR_%machinename% account...
</div>
        <div> 
</div>
        <div>Remember to do this on ALL your servers on the farm... (as well as exporting
the XML!)
</div>
        <div> 
</div>
        <div>
          <font color="#ff0000">***** FURTHER INFO *****</font>
        </div>
        <div>
          <font color="#ff0000">
          </font> 
</div>
        <div>
          <font color="#ff0000">I appear to be running into a problem with my Intranet
access and encryption. Occasionally it will throw the error above almost as if it
has lost its ability to authorize people. Have to iisreset, and sometimes reboot,
in order to resolve. Perhaps trouble with enumerating Domain Users group membership?</font>
        </div>
        <img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=33225981-19d9-46b6-8362-5e84b7b2b19c" />
      </body>
      <title>Encrypting your Web.Config on an FBA Site</title>
      <guid isPermaLink="false">http://www.myfriedmind.com/techBlog/PermaLink,guid,33225981-19d9-46b6-8362-5e84b7b2b19c.aspx</guid>
      <link>http://www.myfriedmind.com/techBlog/2009/05/27/EncryptingYourWebConfigOnAnFBASite.aspx</link>
      <pubDate>Wed, 27 May 2009 19:31:59 GMT</pubDate>
      <description>&lt;div&gt;I was being a good boy *SHOCK* and encrypting my web.config sections on my MOSS
server&amp;nbsp;like I was supposed to. Except...
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;Except...
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;It worked like a charm on the Windows authentication side, but the FBA side was
all wacky. Throwing: 
&lt;/div&gt;
&lt;div&gt;&lt;font color=#ff0000 size=1&gt; 
&lt;p&gt;
Failed to decrypt using provider 'MossCustomKey'. Error message from the provider:
The RSA key container could not be opened. 
&lt;/p&gt;
&lt;/font&gt;
&lt;/div&gt;
&lt;div&gt;So what to do? After a bunch o hunting I kept coming across this issue - it is
permissions - need to allow the account to have permissions. 
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;This is easly accomplished using the aspnet_regiis -pa "MyCustomKey" "AccountToGiveAccess"
command line. But what account?
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;I tried "Nt Service". I tried "ASPNET". I tried the Application Pool account.
But here is the clincher, because this allows Anonymous access, the account is whatever
you have the Anonymous Account set to in IIS - EVEN&amp;nbsp;AFTER YOU HAVE LOGGED ON
USING FBA!!!!
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;This comes from the &amp;lt;identity impersonate='true' /&amp;gt; line in the web.config
and how Sharepoint uses it. Note that you COULD set a specific impersonate there,
but I am not sure you really want to (although I may experiment more in my quest to
enable Sharepoint to assign anon permissions at a page, not subsite, level).
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;So what was the account - simply the %machinename%\IUSR_%machinename% account...
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;Remember to do this on ALL your servers on the farm... (as well as exporting
the XML!)
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;&lt;font color=#ff0000&gt;***** FURTHER INFO *****&lt;/font&gt;
&lt;/div&gt;
&lt;div&gt;&lt;font color=#ff0000&gt;&lt;/font&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;&lt;font color=#ff0000&gt;I appear to be running into a problem with my Intranet access
and encryption. Occasionally it will throw the error above almost as if it has lost
its ability to authorize people. Have to iisreset, and sometimes reboot, in order
to resolve. Perhaps trouble with enumerating Domain Users group membership?&lt;/font&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=33225981-19d9-46b6-8362-5e84b7b2b19c" /&gt;</description>
      <comments>http://www.myfriedmind.com/techBlog/CommentView,guid,33225981-19d9-46b6-8362-5e84b7b2b19c.aspx</comments>
      <category>Sharepoint 2007</category>
    </item>
    <item>
      <trackback:ping>http://www.myfriedmind.com/techBlog/Trackback.aspx?guid=4b150b76-109f-46a1-aa25-3b8b037b3075</trackback:ping>
      <pingback:server>http://www.myfriedmind.com/techBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.myfriedmind.com/techBlog/PermaLink,guid,4b150b76-109f-46a1-aa25-3b8b037b3075.aspx</pingback:target>
      <dc:creator>papabear</dc:creator>
      <wfw:comment>http://www.myfriedmind.com/techBlog/CommentView,guid,4b150b76-109f-46a1-aa25-3b8b037b3075.aspx</wfw:comment>
      <wfw:commentRss>http://www.myfriedmind.com/techBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=4b150b76-109f-46a1-aa25-3b8b037b3075</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Here is a snippet I created that I like to use when defining properties for webparts.
Have fun with it...
</p>
        <p>
&lt;?xml version="1.0" encoding="utf-8" ?&gt;<br />
&lt;CodeSnippets xmlns="<a href="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet</a>"&gt;<br />
   &lt;CodeSnippet Format="1.0.0"&gt;<br />
      &lt;Header&gt;<br />
         &lt;Title&gt;Sharepoint WebPart Property&lt;/Title&gt;<br />
         &lt;Shortcut&gt;wpprop&lt;/Shortcut&gt;<br />
         &lt;Description&gt;Code snippet for
Sharepoint Webpart Property.&lt;/Description&gt;<br />
         &lt;Author&gt;Matthew Mcknight&lt;/Author&gt;<br />
         &lt;SnippetTypes&gt;<br />
            &lt;SnippetType&gt;Expansion&lt;/SnippetType&gt;<br />
         &lt;/SnippetTypes&gt;<br />
      &lt;/Header&gt;<br />
      &lt;Snippet&gt;<br />
         &lt;Declarations&gt;<br />
            &lt;Literal&gt;<br />
              
&lt;ID&gt;type&lt;/ID&gt;<br />
              
&lt;ToolTip&gt;Property type&lt;/ToolTip&gt;<br />
              
&lt;Default&gt;string&lt;/Default&gt;<br />
            &lt;/Literal&gt;<br />
            &lt;Literal&gt;<br />
              
&lt;ID&gt;property&lt;/ID&gt;<br />
              
&lt;ToolTip&gt;Property name&lt;/ToolTip&gt;<br />
              
&lt;Default&gt;MyProperty&lt;/Default&gt;<br />
            &lt;/Literal&gt;<br />
            &lt;Literal&gt;<br />
              
&lt;ID&gt;field&lt;/ID&gt;<br />
              
&lt;ToolTip&gt;The variable backing this property&lt;/ToolTip&gt;<br />
              
&lt;Default&gt;_myProperty&lt;/Default&gt;<br />
            &lt;/Literal&gt;<br />
            &lt;Literal&gt;<br />
              
&lt;ID&gt;personalizable&lt;/ID&gt;<br />
              
&lt;Type&gt;System.Web.UI.WebControls.WebParts.PersonalizationScope&lt;/Type&gt;<br />
              
&lt;ToolTip&gt;Personalization Level for this webpart?&lt;/ToolTip&gt;<br />
              
&lt;Default&gt;PersonalizationScope.Shared&lt;/Default&gt;<br />
            &lt;/Literal&gt;            
<br />
            &lt;Literal&gt;<br />
              
&lt;ID&gt;browsable&lt;/ID&gt;<br />
              
&lt;Type&gt;System.Boolean&lt;/Type&gt;<br />
              
&lt;ToolTip&gt;Is this webpart browsable?&lt;/ToolTip&gt;<br />
              
&lt;Default&gt;true&lt;/Default&gt;<br />
            &lt;/Literal&gt;            
<br />
     &lt;Literal&gt;<br />
              
&lt;ID&gt;description&lt;/ID&gt;<br />
              
&lt;ToolTip&gt;The description for this webpart.&lt;/ToolTip&gt;<br />
              
&lt;Default&gt;My Description&lt;/Default&gt;<br />
            &lt;/Literal&gt;<br />
            &lt;Literal&gt;<br />
              
&lt;ID&gt;defaultValue&lt;/ID&gt;<br />
              
&lt;ToolTip&gt;The default value for this property.&lt;/ToolTip&gt;<br />
              
&lt;Default&gt;&lt;/Default&gt;<br />
            &lt;/Literal&gt;<br />
     &lt;Literal&gt;<br />
              
&lt;ID&gt;category&lt;/ID&gt;<br />
              
&lt;ToolTip&gt;The category to display for this webpart in the webpart editor.&lt;/ToolTip&gt;<br />
              
&lt;Default&gt;My Category&lt;/Default&gt;<br />
            &lt;/Literal&gt;<br />
     &lt;Literal&gt;<br />
              
&lt;ID&gt;friendlyName&lt;/ID&gt;<br />
              
&lt;ToolTip&gt;The friendly name to display for this webpart.&lt;/ToolTip&gt;<br />
              
&lt;Default&gt;My Friendly Name&lt;/Default&gt;<br />
            &lt;/Literal&gt;<br />
         &lt;/Declarations&gt;<br />
         &lt;Code Language="csharp"&gt;&lt;![CDATA[<br />
private $type$ $property$;
</p>
        <p>
[Personalizable($personalizable$)]<br />
[WebBrowsable($browsable$)]<br />
[Description("$description$")]<br />
[DefaultValue("$defaultValue$")]<br />
[Category("$category$")]<br />
[FriendlyName("$friendlyName$")]<br />
public $type$ $property$<br />
{<br />
 get { return $field$; }<br />
 set { $field$ = value; }<br />
}<br />
$end$]]&gt;<br />
         &lt;/Code&gt;<br />
      &lt;/Snippet&gt;<br />
   &lt;/CodeSnippet&gt;<br />
&lt;/CodeSnippets&gt;
</p>
        <img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=4b150b76-109f-46a1-aa25-3b8b037b3075" />
      </body>
      <title>Sharepoint 2007 Properties Snippet</title>
      <guid isPermaLink="false">http://www.myfriedmind.com/techBlog/PermaLink,guid,4b150b76-109f-46a1-aa25-3b8b037b3075.aspx</guid>
      <link>http://www.myfriedmind.com/techBlog/2009/05/26/Sharepoint2007PropertiesSnippet.aspx</link>
      <pubDate>Tue, 26 May 2009 18:36:05 GMT</pubDate>
      <description>&lt;p&gt;
Here is a snippet I created that I like to use when defining properties for webparts.
Have fun with it...
&lt;/p&gt;
&lt;p&gt;
&amp;lt;?xml version="1.0" encoding="utf-8" ?&amp;gt;&lt;br&gt;
&amp;lt;CodeSnippets xmlns="&lt;a href="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"&gt;http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet&lt;/a&gt;"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;CodeSnippet Format="1.0.0"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Header&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Title&amp;gt;Sharepoint WebPart Property&amp;lt;/Title&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Shortcut&amp;gt;wpprop&amp;lt;/Shortcut&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Description&amp;gt;Code snippet for
Sharepoint Webpart Property.&amp;lt;/Description&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Author&amp;gt;Matthew Mcknight&amp;lt;/Author&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;SnippetTypes&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;SnippetType&amp;gt;Expansion&amp;lt;/SnippetType&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/SnippetTypes&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Header&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Snippet&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Declarations&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ID&amp;gt;type&amp;lt;/ID&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ToolTip&amp;gt;Property type&amp;lt;/ToolTip&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Default&amp;gt;string&amp;lt;/Default&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ID&amp;gt;property&amp;lt;/ID&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ToolTip&amp;gt;Property name&amp;lt;/ToolTip&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Default&amp;gt;MyProperty&amp;lt;/Default&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ID&amp;gt;field&amp;lt;/ID&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ToolTip&amp;gt;The variable backing this property&amp;lt;/ToolTip&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Default&amp;gt;_myProperty&amp;lt;/Default&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ID&amp;gt;personalizable&amp;lt;/ID&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Type&amp;gt;System.Web.UI.WebControls.WebParts.PersonalizationScope&amp;lt;/Type&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ToolTip&amp;gt;Personalization Level for this webpart?&amp;lt;/ToolTip&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Default&amp;gt;PersonalizationScope.Shared&amp;lt;/Default&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Literal&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ID&amp;gt;browsable&amp;lt;/ID&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Type&amp;gt;System.Boolean&amp;lt;/Type&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ToolTip&amp;gt;Is this webpart browsable?&amp;lt;/ToolTip&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Default&amp;gt;true&amp;lt;/Default&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Literal&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ID&amp;gt;description&amp;lt;/ID&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ToolTip&amp;gt;The description for this webpart.&amp;lt;/ToolTip&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Default&amp;gt;My Description&amp;lt;/Default&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ID&amp;gt;defaultValue&amp;lt;/ID&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ToolTip&amp;gt;The default value for this property.&amp;lt;/ToolTip&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Default&amp;gt;&amp;lt;/Default&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ID&amp;gt;category&amp;lt;/ID&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ToolTip&amp;gt;The category to display for this webpart in the webpart editor.&amp;lt;/ToolTip&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Default&amp;gt;My Category&amp;lt;/Default&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ID&amp;gt;friendlyName&amp;lt;/ID&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;ToolTip&amp;gt;The friendly name to display for this webpart.&amp;lt;/ToolTip&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;Default&amp;gt;My Friendly Name&amp;lt;/Default&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Literal&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Declarations&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Code Language="csharp"&amp;gt;&amp;lt;![CDATA[&lt;br&gt;
private $type$ $property$;
&lt;/p&gt;
&lt;p&gt;
[Personalizable($personalizable$)]&lt;br&gt;
[WebBrowsable($browsable$)]&lt;br&gt;
[Description("$description$")]&lt;br&gt;
[DefaultValue("$defaultValue$")]&lt;br&gt;
[Category("$category$")]&lt;br&gt;
[FriendlyName("$friendlyName$")]&lt;br&gt;
public $type$ $property$&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;get { return $field$; }&lt;br&gt;
&amp;nbsp;set { $field$ = value; }&lt;br&gt;
}&lt;br&gt;
$end$]]&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Code&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Snippet&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp; &amp;lt;/CodeSnippet&amp;gt;&lt;br&gt;
&amp;lt;/CodeSnippets&amp;gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=4b150b76-109f-46a1-aa25-3b8b037b3075" /&gt;</description>
      <comments>http://www.myfriedmind.com/techBlog/CommentView,guid,4b150b76-109f-46a1-aa25-3b8b037b3075.aspx</comments>
      <category>c#</category>
      <category>Sharepoint 2007</category>
      <category>Visual Studio</category>
    </item>
    <item>
      <trackback:ping>http://www.myfriedmind.com/techBlog/Trackback.aspx?guid=0bedf023-65af-4979-825e-4932bc2cbf14</trackback:ping>
      <pingback:server>http://www.myfriedmind.com/techBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.myfriedmind.com/techBlog/PermaLink,guid,0bedf023-65af-4979-825e-4932bc2cbf14.aspx</pingback:target>
      <dc:creator>papabear</dc:creator>
      <wfw:comment>http://www.myfriedmind.com/techBlog/CommentView,guid,0bedf023-65af-4979-825e-4932bc2cbf14.aspx</wfw:comment>
      <wfw:commentRss>http://www.myfriedmind.com/techBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=0bedf023-65af-4979-825e-4932bc2cbf14</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <font color="#ff0000">*** Please Note that this is done on a "publishing" site, it
may be that this issue (I mean 'feature') does not occur on other types of sites.
But I doubt it.</font>
          <br />
 <br />
For those of you unfamiliar with Sharepoint, it combines Master Pages (for overarching
look and feel or every page in the site) with Page Templates (which help define how
a specific page should be layed out but not the content itself). One way to think
of it is that each page in Sharepoint has three levels:
</p>
        <ol>
          <li>
The master page is the highest level and applies to all pages (unless overriden by
a page or subsite) 
</li>
          <li>
The page template layout determines what 'type' of page (ie web parts page, or
article page, or welcome page, or ...) 
</li>
          <li>
The actual page content.</li>
        </ol>
        <p>
Remeber that Master Pages can have parent Master Pages. Page Template Layouts are
not considered Master Pages by Sharepoint, but for those of you familiar with the
concept of parent/child Master Pages, Page Template Layouts act in the manner similar to
a Child Master Page. 
</p>
        <p>
Using Page Template Layouts works wonderfully on Sharepoint unless you have ...
</p>
        <ul>
          <li>
more than one server, or ... 
</li>
          <li>
at least one extension to the server, or ... 
</li>
          <li>
you move to a new server, or ... 
</li>
          <li>
you move files from one server to another (via publishing, Sharepoint Designer, manual,
etc).</li>
        </ul>
        <p>
In other words, unless you have a single url to use which never, ever changes, you
may be in for trouble. 
<br />
 <br />
Why? Well it's all relative. Or more specifically it is NOT relative, it is absolute.<br />
 <br />
Basically whenever you create a page it prepends the page layout template section
with the URL that you created the page on, turning it into an absolute reference.
In other words if you take a look at your page (ex by downloading a copy) you will
find that there is a section that reads like this:<br />
 <br />
&lt;mso:CustomDocumentProperties&gt;<br />
... stuff here<br />
&lt;mso:PublishingPageLayout msdt:dt="string"&gt;http://theurlthatyouused/_catalogs/masterpage/PageFromDocLayout,
Article page with body only&lt;/mso:PublishingPageLayout&gt;<br />
... more stuff here<br />
&lt;/mso:CustomDocumentProperties&gt;<br />
 <br />
Note that it has prepended the url, whether it be interal - <a href="http://myserver:8080">http://myserver:8080</a> -
or external one - <a href="http://www.myfriedmind.com">http://www.myfriedmind.com</a>.<br />
 <br />
So what does this mean for you? I have good news and bad news. 
</p>
        <ul>
          <li>
The good news: even if the URL of the page is different (eg calling the page from <a href="http://myserver:9090">http://myserver:9090</a> and
not <a href="http://myserver:8080">http://myserver:8080</a> if you extended your site)
the page will still show up. Even though the absolute url is different it still pulls
it from the database as if it was a relative url. Strange but true. 
</li>
          <li>
The bad news: You will not be able to edit the page settings from other than the original
URL.</li>
        </ul>
        <p>
If you do, expect this to appear:
</p>
        <p>
          <img src="http://www.myfriedmind.com/techBlog/content/binary/beingedited.jpg" border="1" />
          <br />
 <br />
WHA????????????? Where did that come from? Did someone else modify it? Nope.<br />
 <br />
After choosing Exit Without Saving you might get it to work. Maybe.<br />
 <br />
You might also get this error if you have a webpartpage and decide to edit one of
the webparts. Keep clicking on choices until one of them works...<br />
 <br />
Does this remind anyone of being lost in the caverns of Adventures of Zelda? You are
in a maze of twisty little passages, all alike...<br />
 <br />
The best is if you try to modify the Page Settings on such a page... 
</p>
        <p>
*BOOM*
</p>
        <p>
          <img src="http://www.myfriedmind.com/techBlog/content/binary/valuedoesnotfall.jpg" border="1" />
        </p>
        <p>
What has happened is that Sharepoint is looking at the PageTemplateLayout property
of the page (which is an absolute reference). If the Server Name and/or Port that
you are editing from do not match that exactly then Sharepoint assumes that someone
has modified the page between when you started editing and when you try to save it.
</p>
        <p>
Again, one of the ways that Sharepoint tries to determine if your copy is 'dirty'
(ie someone has made a change between when you first tried to edit and now) is that
it looks at the PageTemplateLayout property. If there is not an exact match it rejects
it. If you try to modify the Page Settings it explodes.
</p>
        <ul>
          <li>
Scenario #1 - you copy a page from a different URL using Sharepoint Designer - it
simply copies the file, including the now INCORRECT URL. 
</li>
          <li>
Scenario #2 - You are moving your sharepoint to a bigger, faster server (or you are
restoring). The new server has a different name... 
</li>
          <li>
Scenario #3 - You are publishing the pages out to a different front end server but
want to be able to edit it from there... 
</li>
          <li>
Scenario #4 - you are extending a web app to be used on the internet, and you want
both internal and external people to be able to edit the same pages, but using different
URLs...</li>
        </ul>
        <p>
etc, etc, etc...<br />
 <br />
What is the solution? Well, there are a couple. One is to use this nifty addition
to STSADM - <a href="http://stsadm.blogspot.com/2007/08/fix-publishing-pages-page-layout-url.html">http://stsadm.blogspot.com/2007/08/fix-publishing-pages-page-layout-url.html</a>.
Gentleman Gary has done a wonderful job creating a flexible way to repair these beasties.
The only caveat - it is an incomplete fix. Basically it still uses an absolute URL,
it just replaces the wrong one with the correct one (see his note at the bottom in
response to my question). It will fix #1 and #2 above (although if you move it again
you will have to rerun it again), but it does nothing for #4. I am not sure about
#3 &lt;g&gt;.
</p>
        <p>
Again, note that this does not fix the issue with multiple access, only where a page
has been moved. However, if it is simply a matter that you have moved your pages to
a different server than this is a pretty rocking solution.<br />
 <br />
I have to deal with #4 after doing #2, so what do I do? 
<br /></p>
        <p>
Initially I personally download each file as I uncovered the issue and manually removed
the absolute url from the text and replaced it with a relative url and then uploaded
the file. I expected a handful to show up, but the number kept increasing. In addition
it was a pain for our staff. Sometimes I could spot it after they had made a non-blowing
up modification by checking the nvarchar14 in the content database (Select tp_id,
nvarchar14 from AllUserData Where nvarchar14 LIKE 'http://%') , but sometimes I would
only catch if when they called me to complain. 
<br /></p>
        <p>
          <i>Btw, if you are thinking that you can just modify the nvarchar14 instead of extracting
and modifying the page, it does not work. It will be overwritten once another change
is made to put it back to the absolute url. Trust me</i>.<br /></p>
        <p>
My solution ultimately was to write some code in c# that:
</p>
        <ol>
          <li>
extracted each page 
</li>
          <li>
checked it out 
</li>
          <li>
inspected the PageTemplateLayout text for an absolute URL 
</li>
          <li>
replaced it with a relative URL if that was the case 
</li>
          <li>
uploaded the page 
</li>
          <li>
checked in the page 
</li>
          <li>
published the page 
</li>
          <li>
approved the page</li>
        </ol>
I may publish that code in another blog on the off chance anyone is curious about
how to do such a thing. This solves Scenario #2 and #4 for me. 
<br /><p>
Long term? Microsoft???? 
</p><p>
Maybe this is part of the design, or maybe they just missed this. I am just hoping
they will fix it. There appears to be absolutely no loss of functionality with a relative
reference and even thought there *might* be a case where a page template is housed
on another site (and hence a different URL) this is far too serious an issue to sweep
under the carpet.<br />
 <br />
I will enter more on another PageTemplate issue in another blog...
</p><img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=0bedf023-65af-4979-825e-4932bc2cbf14" /></body>
      <title>Curse you PublishingPageLayout!!!!!! Or the discovery of a wonderful "feature" of Sharepoint 2007</title>
      <guid isPermaLink="false">http://www.myfriedmind.com/techBlog/PermaLink,guid,0bedf023-65af-4979-825e-4932bc2cbf14.aspx</guid>
      <link>http://www.myfriedmind.com/techBlog/2009/05/22/CurseYouPublishingPageLayoutOrTheDiscoveryOfAWonderfulFeatureOfSharepoint2007.aspx</link>
      <pubDate>Fri, 22 May 2009 14:35:48 GMT</pubDate>
      <description>&lt;p&gt;
&lt;font color=#ff0000&gt;*** Please Note that this is done on a "publishing" site, it may
be that this issue (I mean 'feature') does not occur on other types of sites. But
I doubt it.&lt;/font&gt;
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
For those of you unfamiliar with Sharepoint, it combines Master Pages (for overarching
look and feel or every page in the site) with Page Templates (which help define how
a specific page should be layed out but not the content itself).&amp;nbsp;One way to think
of it is that each page&amp;nbsp;in Sharepoint has three levels:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
The master page is the highest level and applies to all pages (unless overriden by
a page or subsite) 
&lt;li&gt;
The page template layout determines&amp;nbsp;what 'type' of page (ie web parts page, or
article page, or welcome page, or ...) 
&lt;li&gt;
The actual page&amp;nbsp;content.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Remeber that Master Pages can have parent Master Pages. Page Template Layouts are
not considered Master Pages by Sharepoint, but for those of you familiar with the
concept of parent/child Master Pages, Page Template Layouts act in the manner similar&amp;nbsp;to
a Child Master Page.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Using Page Template Layouts&amp;nbsp;works wonderfully on Sharepoint unless you have ...
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
more than one server, or ... 
&lt;li&gt;
at least one extension to the server, or ... 
&lt;li&gt;
you move to a new server, or ... 
&lt;li&gt;
you move files from one server to another (via publishing, Sharepoint Designer, manual,
etc).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
In other words, unless you have a single url to use which never, ever changes, you
may be in for trouble. 
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
Why? Well it's all relative. Or more specifically it is NOT relative, it is absolute.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
Basically whenever you create a page it prepends the page layout template section
with the URL that you created the page on, turning it into an absolute reference.
In other words if you take a look at your page (ex by downloading a copy) you will
find that there is a section that reads like this:&lt;br&gt;
&amp;nbsp;&lt;br&gt;
&amp;lt;mso:CustomDocumentProperties&amp;gt;&lt;br&gt;
... stuff here&lt;br&gt;
&amp;lt;mso:PublishingPageLayout msdt:dt="string"&amp;gt;http://theurlthatyouused/_catalogs/masterpage/PageFromDocLayout,
Article page with body only&amp;lt;/mso:PublishingPageLayout&amp;gt;&lt;br&gt;
... more stuff here&lt;br&gt;
&amp;lt;/mso:CustomDocumentProperties&amp;gt;&lt;br&gt;
&amp;nbsp;&lt;br&gt;
Note that it has prepended the url, whether it be interal - &lt;a href="http://myserver:8080"&gt;http://myserver:8080&lt;/a&gt; -
or external one - &lt;a href="http://www.myfriedmind.com"&gt;http://www.myfriedmind.com&lt;/a&gt;.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
So what does this mean for you? I have good news and bad news. 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
The good news: even if the URL of the page is different (eg calling the page from &lt;a href="http://myserver:9090"&gt;http://myserver:9090&lt;/a&gt; and
not &lt;a href="http://myserver:8080"&gt;http://myserver:8080&lt;/a&gt; if you extended your site)
the page will still show up. Even though the absolute url is different it still pulls
it from the database as if it was a relative url. Strange but true. 
&lt;li&gt;
The bad news: You will not be able to edit the page settings from other than the original
URL.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
If you do, expect this to appear:
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.myfriedmind.com/techBlog/content/binary/beingedited.jpg" border=1&gt;
&lt;br&gt;
&amp;nbsp;&lt;br&gt;
WHA????????????? Where did that come from? Did someone else modify it? Nope.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
After choosing Exit Without Saving you might get it to work. Maybe.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
You might also get this error if you have a webpartpage and decide to edit one of
the webparts. Keep clicking on choices until one of them works...&lt;br&gt;
&amp;nbsp;&lt;br&gt;
Does this remind anyone of being lost in the caverns of Adventures of Zelda? You are
in a maze of twisty little passages, all alike...&lt;br&gt;
&amp;nbsp;&lt;br&gt;
The best is if you try to modify the Page Settings on such a page... 
&lt;/p&gt;
&lt;p&gt;
*BOOM*
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.myfriedmind.com/techBlog/content/binary/valuedoesnotfall.jpg" border=1&gt;
&lt;/p&gt;
&lt;p&gt;
What has happened is that Sharepoint is looking at the PageTemplateLayout property
of the page (which is an absolute reference). If the Server Name and/or Port that
you are editing from do not match that exactly then Sharepoint assumes that someone
has modified the page between when you started editing and when you try to save it.
&lt;/p&gt;
&lt;p&gt;
Again, one of the ways that Sharepoint tries to determine if your copy is 'dirty'
(ie someone has made a change between when you first tried to edit and now) is that
it looks at the PageTemplateLayout property. If there is not an exact match it rejects
it. If you try to modify the Page Settings it explodes.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Scenario #1 - you copy a page from a different URL using Sharepoint Designer - it
simply copies the file, including the now INCORRECT URL. 
&lt;li&gt;
Scenario #2 - You are moving your sharepoint to a bigger, faster server (or you are
restoring). The new server has a different name... 
&lt;li&gt;
Scenario #3 - You are publishing the pages out to a different front end server but
want to be able to edit it from there... 
&lt;li&gt;
Scenario #4 - you are extending a web app to be used on the internet, and you want
both internal and external people to be able to edit the same pages, but using different
URLs...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
etc, etc, etc...&lt;br&gt;
&amp;nbsp;&lt;br&gt;
What is the solution? Well, there are a couple. One is to use this nifty addition
to STSADM - &lt;a href="http://stsadm.blogspot.com/2007/08/fix-publishing-pages-page-layout-url.html"&gt;http://stsadm.blogspot.com/2007/08/fix-publishing-pages-page-layout-url.html&lt;/a&gt;.
Gentleman Gary has done a wonderful job creating a flexible way to repair these beasties.
The only caveat - it is an incomplete fix. Basically it still uses an absolute URL,
it just replaces the wrong one with the correct one (see his note at the bottom in
response to my question). It will fix #1 and #2 above (although if you move it again
you will have to rerun it again), but it does nothing for #4. I am not sure about
#3 &amp;lt;g&amp;gt;.
&lt;/p&gt;
&lt;p&gt;
Again, note that this does not fix the issue with multiple access, only where a page
has been moved. However, if it is simply a matter that you have moved your pages to
a different server than this is a pretty rocking solution.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
I have to deal with #4 after doing #2, so what do I do? 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
Initially I personally download each file as I uncovered the issue and manually removed
the absolute url from the text and replaced it with a relative url and then uploaded
the file. I expected a handful to show up, but the number kept increasing. In addition
it was a pain for our staff. Sometimes I could spot it after they had made a non-blowing
up modification by checking the nvarchar14 in the content database (Select tp_id,
nvarchar14 from AllUserData Where nvarchar14 LIKE 'http://%') , but sometimes I would
only catch if when they called me to complain. 
&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;i&gt;Btw, if you are thinking that you can just modify the nvarchar14 instead of extracting
and modifying the page, it does not work. It will be overwritten once another change
is made to put it back to the absolute url. Trust me&lt;/i&gt;.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
My solution ultimately was to write some code in c# that:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
extracted each page 
&lt;li&gt;
checked it out 
&lt;li&gt;
inspected the PageTemplateLayout text for an absolute URL 
&lt;li&gt;
replaced it with a relative URL if that was the case 
&lt;li&gt;
uploaded the page 
&lt;li&gt;
checked in the page 
&lt;li&gt;
published the page 
&lt;li&gt;
approved the page&lt;/li&gt;
&lt;/ol&gt;
I may publish that code in another blog on the off chance anyone is curious about
how to do such a thing. This solves Scenario #2 and #4 for me. 
&lt;br&gt;
&lt;p&gt;
Long term? Microsoft????&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Maybe this is part of the design, or maybe they just missed this. I am just hoping
they will fix it. There appears to be absolutely no loss of functionality with a relative
reference and even thought there *might* be a case where a page template is housed
on another site (and hence a different URL) this is far too serious an issue to sweep
under the carpet.&lt;br&gt;
&amp;nbsp;&lt;br&gt;
I will enter more on another PageTemplate issue in another blog...
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=0bedf023-65af-4979-825e-4932bc2cbf14" /&gt;</description>
      <comments>http://www.myfriedmind.com/techBlog/CommentView,guid,0bedf023-65af-4979-825e-4932bc2cbf14.aspx</comments>
      <category>Sharepoint 2007</category>
    </item>
    <item>
      <trackback:ping>http://www.myfriedmind.com/techBlog/Trackback.aspx?guid=84e0d576-c92d-436a-bb2e-4a33dc2ee3f9</trackback:ping>
      <pingback:server>http://www.myfriedmind.com/techBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.myfriedmind.com/techBlog/PermaLink,guid,84e0d576-c92d-436a-bb2e-4a33dc2ee3f9.aspx</pingback:target>
      <dc:creator>papabear</dc:creator>
      <wfw:comment>http://www.myfriedmind.com/techBlog/CommentView,guid,84e0d576-c92d-436a-bb2e-4a33dc2ee3f9.aspx</wfw:comment>
      <wfw:commentRss>http://www.myfriedmind.com/techBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=84e0d576-c92d-436a-bb2e-4a33dc2ee3f9</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div class="ExternalClass74B6ED1E6F4B4A309E2DAADD5F91F0DE">
          <div>For those of you who are using Sharepoint's 'built-in' backup feature, you probably
already know that one of the biggest problems with it is that you can not automate
it directly. In order to do that you need to used AT -&gt;
</div>
          <div>AT 01:00 /every:1,2,3,4,5,6,7 cmd /c "stsadm.exe -o backup -directory <a href="file://myserver/mybackupshare">file://myserver/mybackupshare</a> -backupmethod
full"
</div>
          <div> 
</div>
          <div>This is not a showstopper. It works. However unless you have the correct perms
it will fail. Or, to be more specific, the Sql Service Account needs to be able to
read/write to that share. Again, this is the account that the Sql Service runs under.
Hopefully a domain account.
</div>
          <div> 
</div>
          <div>Also, if you are going to run it from the Sharepoint Central Administration Website,
the account you are logged in with needs those perms as well.
</div>
        </div>
        <img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=84e0d576-c92d-436a-bb2e-4a33dc2ee3f9" />
      </body>
      <title>Sharepoint Backup Permissions or SqlException: Cannot open backup device '\\myserver\backups\spbr0000\00000024.bak'. Device error or device off-line</title>
      <guid isPermaLink="false">http://www.myfriedmind.com/techBlog/PermaLink,guid,84e0d576-c92d-436a-bb2e-4a33dc2ee3f9.aspx</guid>
      <link>http://www.myfriedmind.com/techBlog/2009/05/18/SharepointBackupPermissionsOrSqlExceptionCannotOpenBackupDeviceMyserverbackupsspbr000000000024bakDeviceErrorOrDeviceOffline.aspx</link>
      <pubDate>Mon, 18 May 2009 16:14:45 GMT</pubDate>
      <description>&lt;div class=ExternalClass74B6ED1E6F4B4A309E2DAADD5F91F0DE&gt;
&lt;div&gt;For those of you who are using Sharepoint's 'built-in' backup feature, you probably
already know that one of the biggest problems with it is that you can not automate
it directly. In order to do that you need to used AT -&amp;gt;
&lt;/div&gt;
&lt;div&gt;AT&amp;nbsp;01:00 /every:1,2,3,4,5,6,7 cmd /c "stsadm.exe -o backup -directory &lt;a href="file://myserver/mybackupshare"&gt;file://myserver/mybackupshare&lt;/a&gt; -backupmethod
full"
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;This is not a showstopper. It works. However unless you have the correct perms
it will fail. Or, to be more specific, the Sql Service Account needs to be able to
read/write to that share. Again, this is the account that the Sql Service runs under.
Hopefully a domain account.
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;div&gt;Also, if you are going to run it from the Sharepoint Central Administration Website,
the account you are logged in with needs those perms as well.
&lt;/div&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=84e0d576-c92d-436a-bb2e-4a33dc2ee3f9" /&gt;</description>
      <comments>http://www.myfriedmind.com/techBlog/CommentView,guid,84e0d576-c92d-436a-bb2e-4a33dc2ee3f9.aspx</comments>
      <category>Sharepoint 2007</category>
      <category>Sql</category>
    </item>
    <item>
      <trackback:ping>http://www.myfriedmind.com/techBlog/Trackback.aspx?guid=e6eef807-abf5-44cb-a9ce-f789d97514ee</trackback:ping>
      <pingback:server>http://www.myfriedmind.com/techBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.myfriedmind.com/techBlog/PermaLink,guid,e6eef807-abf5-44cb-a9ce-f789d97514ee.aspx</pingback:target>
      <dc:creator>papabear</dc:creator>
      <wfw:comment>http://www.myfriedmind.com/techBlog/CommentView,guid,e6eef807-abf5-44cb-a9ce-f789d97514ee.aspx</wfw:comment>
      <wfw:commentRss>http://www.myfriedmind.com/techBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=e6eef807-abf5-44cb-a9ce-f789d97514ee</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Recently someone asked about using Ajax on Sharepoint. I should note that a number
of resources are out there on this which I used, so - as brilliant as I am &lt;g&gt;
- the credit for this has to go to those who have gone before...
</p>
        <p>
Like a lot of people I have been working on both since their betas, so whether or
not I should install Ajax on Sharepoint was a no-brainer. Unfortunately, when Sharepoint
2007 first came out it was the very end of 2006 and Ajax was not officially released
until January 23, 2007. As a result, in order to utilize Ajax on Sharepoint (pre-SP1)
you needed to jump through a whole host of hoops. This is not to say it could not
be done, merely that it was a cumbersome and painful process.
</p>
        <p class="step">
Step 1: Install SP1 on Sharepoint
</p>
        <p>
Luckily the folks on the Sharepoint team made that a priority, and even though we
had to wait a bit for it, they did include 'Ajax support' in SP1. So the first step
to using Ajax on Sharepoint 2007 is, quite simply, install Sharepoint 2007 SP1. You
can do it without SP1, but really, why would you?
</p>
        <p>
Note that simply installing SP1 does not automatically turn on Ajax (there are more
steps) but it removes some of the bugs that popped up.
</p>
        <p class="step">
Step 2: (Recommended): Install Asp.Net framework 3.5 SP1
</p>
        <p>
The next thing that I strongly suggest is that you upgrade to .Net 3.5 (sp1). Why?
Simply because if you are going to be doing any Ajax you will want to. 
</p>
        <ul>
          <li>
It includes it directly in the framework, no need to install it separately 
</li>
          <li>
It has awesome debugging - you will still use Fiddler, but less often 
</li>
          <li>
Intellisense 
</li>
          <li>
Much, much easier means of creating a 'tracking history' of Ajax calls</li>
        </ul>
        <p>
If you decide to install .Net 3.5, note that you will not see a Web Service Extension
for it in the IIS Manager. This is not a flaw, this is because 3.5 is an extension
of 2.0. Let me state that again - if you install 3.5 you will actually use 2.0 as
the .Net version.
</p>
        <p>
Doing these two steps does not mean that Ajax is automatically up and running, just
that the necessary dlls have been put into the GAC.
</p>
        <p>
One final note - if you install 3.5 you will be using version 3.5.0.0 of System.Web.UI.*
in a number of your web.config entries. If you are using an earlier version, make
sure to check the GAC and find out what the specific version is. Most of the rest
of the steps involve modifying your web.config, so make sure you know your System.Web.UI.Extensions
version before you being
</p>
        <p class="step">
Step 2a: Make a back up of your web.config
</p>
        <p>
We are all good techies here, right? Which means we are all paranoid, right? Never,
ever modify your web.config unless you have a rollback copy at hand. Remember, paranoia
is a job-requirement.
</p>
        <p class="step">
Step 3: Add the system.web.extensions sectionGroups to the configSections
of your web.config
</p>
        <p>
If you are not familiar with Sharepoint, this will be located in your c:\inetpub\wwwroot\VirtualDirectories\wss\{your
site's port here}. So if you have your Sharepoint on port 8080 your web.config will
be located at c:\inetpub\wwwroot\VirtualDirectories\wss\8080. Remember to make a copy
of it like a good, paranoid nerd. Also, I tend to remark what I am adding and why
to my web.config, but you don't have to.
</p>
        <p>
Add this in the &lt;configSections&gt; portion, which should be at the top. You will
already see other &lt;sectionGroup... &gt; entries there, just add this one at the
end (above the &lt;/configSections&gt; entry), wrapped for readability...
</p>
        <font color="#0000ff" size="2">
          <p>
&lt;!--
</p>
        </font>
        <font color="#008000" size="2"> ======= Added for Ajax start ====== </font>
        <font color="#0000ff" size="2">--&gt;<br />
&lt;</font>
        <font color="#a31515" size="2">sectionGroup</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">system.web.extensions</font>
        <font color="#000000" size="2">" 
<br /></font>
        <font color="#ff0000" size="2">         
type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Configuration.SystemWebExtensionsSectionGroup, 
<br />
          System.Web.Extensions, Version=3.5.0.0,
Culture=neutral,  
<br />
          </font>
        <font color="#0000ff" size="2">PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">&gt;<br />
     &lt;</font>
        <font color="#a31515" size="2">sectionGroup</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">scripting</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">  
<br />
              </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Configuration.ScriptingSectionGroup, 
<br />
              </font>
        <font color="#0000ff" size="2">System.Web.Extensions,
Version=3.5.0.0,  <br />
              Culture=neutral,
PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">&gt;<br />
         &lt;</font>
        <font color="#a31515" size="2">section</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">scriptResourceHandler</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Configuration.ScriptingScriptResourceHandlerSection,<br />
                 System.Web.Extensions, Version=3.5.0.0,
Culture=neutral, 
<br />
                
PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">requirePermission</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">false</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> <br />
                 </font>
        <font color="#ff0000" size="2">allowDefinition</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">MachineToApplication</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br /></font>
        <font color="#0000ff" size="2">         &lt;</font>
        <font color="#a31515" size="2">sectionGroup</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">webServices</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                 </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Configuration.ScriptingWebServicesSectionGroup, 
<br />
                
System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
<br />
                
PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">&gt;<br />
             &lt;</font>
        <font color="#a31515" size="2">section</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">jsonSerialization</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                     </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Configuration.ScriptingJsonSerializationSection, 
<br />
                    
System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
<br />
                    
PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">requirePermission</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">false</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                     </font>
        <font color="#ff0000" size="2">allowDefinition</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">Everywhere</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br />
             </font>
        <font color="#0000ff" size="2">&lt;</font>
        <font color="#a31515" size="2">section</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">profileService</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                    </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Configuration.ScriptingProfileServiceSection, <br />
                    System.Web.Extensions,
Version=3.5.0.0, Culture=neutral, 
<br />
                   
PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">requirePermission</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">false</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                    </font>
        <font color="#ff0000" size="2">allowDefinition</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">MachineToApplication</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br />
             </font>
        <font color="#0000ff" size="2">&lt;</font>
        <font color="#a31515" size="2">section</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">authenticationService</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                    </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Configuration.ScriptingAuthenticationServiceSection, 
<br />
                   
System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
<br />
                   
PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">requirePermission</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">false</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                    </font>
        <font color="#ff0000" size="2">allowDefinition</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">MachineToApplication</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br />
          &lt;/</font>
        <font color="#a31515" size="2">sectionGroup</font>
        <font color="#0000ff" size="2">&gt;<br />
     &lt;/</font>
        <font color="#a31515" size="2">sectionGroup</font>
        <font color="#0000ff" size="2">&gt;<br />
&lt;/</font>
        <font color="#a31515" size="2">sectionGroup</font>
        <font color="#0000ff" size="2">&gt;<br />
&lt;!--</font>
        <font color="#008000" size="2"> ======= Added for Ajax end ====== </font>
        <font color="#0000ff" size="2">--&gt;</font>
        <p class="step">
Step 4: Add System.Web.Extensions as a "SafeControl" to your web.config
</p>
        <p>
SafeControls are those assemblies that should be considered "Safe" by Sharepoint.
Do a quick find for &lt;SafeControls&gt; and you will see a whole lotta them. Simply
add this line to the bottom, above the &lt;/SafeControls&gt;. 
</p>
        <p>
NOTE!!! If you are using a different version than .net 3.5, make sure that you verify
what version it is in the GAC. This needs to be specified in the "Version" section
or Sharepoint will throw an error. Because I am using 3.5, my version is 3.5.0.0
</p>
        <font color="#0000ff" size="2">
          <p>
&lt;!--
</p>
        </font>
        <font color="#008000" size="2"> ====== Added for Ajax  ====== </font>
        <font color="#0000ff" size="2">--&gt;<br />
&lt;</font>
        <font color="#a31515" size="2">SafeControl</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">Assembly</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Extensions,
Version=3.5.0.0, 
<br />
        </font>
        <font color="#0000ff" size="2">Culture=neutral,
PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">  
<br />
        </font>
        <font color="#ff0000" size="2">Namespace</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.UI</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">TypeName</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">*</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">Safe</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">True</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;
</font>
        <p class="step">
Step 5: Add the needed "verbs" to your &lt;httpHandlers&gt;
</p>
        <p>
Note that this is NOT the &lt;httpModules&gt; section. There should already be some
entries there, so just stick this at the end, above the &lt;/httpHandlers&gt; line....
</p>
        <font color="#0000ff" size="2">
          <p>
&lt;!--
</p>
        </font>
        <font color="#008000" size="2"> ====== Added for Ajax start ====== </font>
        <font color="#0000ff" size="2">--&gt;<br />
&lt;</font>
        <font color="#a31515" size="2">add</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">verb</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">*</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">path</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">*.asmx</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">validate</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">false</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
        </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Script.Services.ScriptHandlerFactory, 
<br />
        System.Web.Extensions, Version=3.5.0.0,
Culture=neutral, 
<br />
        PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br />
&lt;</font>
        <font color="#a31515" size="2">add</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">verb</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">*</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">path</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">*_AppService.axd</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">validate</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">false</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
        </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Script.Services.ScriptHandlerFactory, <br />
        System.Web.Extensions, Version=3.5.0.0, 
<br />
        Culture=neutral, PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br />
&lt;</font>
        <font color="#a31515" size="2">add</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">verb</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">GET,HEAD</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">path</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">ScriptResource.axd</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
        </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Handlers.ScriptResourceHandler, <br />
        System.Web.Extensions, Version=3.5.0.0,
Culture=neutral, 
<br />
        PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">validate</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">false</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br />
&lt;!--</font>
        <font color="#008000" size="2"> ====== Added for Ajax end ====== </font>
        <font color="#0000ff" size="2">--&gt;</font>
        <p class="step">
Step 6: Add the &lt;controls&gt; reference to the &lt;pages...&gt; section of the
web.config
</p>
        <p>
This will enable your pages to recognize the controls that come with Ajax (such as
the ScriptManager, etc). Locate the &lt;pages ...&gt; section and add this at the
end above the &lt;/pages&gt; entry. Again, keep an eye on the Version.
</p>
        <font color="#0000ff" size="2">
          <p>
&lt;!--
</p>
        </font>
        <font color="#008000" size="2"> ====== Added for Ajax  ====== </font>
        <font color="#0000ff" size="2">--&gt;<br />
&lt;</font>
        <font color="#a31515" size="2">controls</font>
        <font color="#0000ff" size="2">&gt;<br />
    &lt;</font>
        <font color="#a31515" size="2">add</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">tagPrefix</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">asp</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">namespace</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.UI</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
          </font>
        <font color="#ff0000" size="2">assembly</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Extensions,
Version=3.5.0.0, 
<br />
          Culture=neutral, PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br /></font>
        <font color="#0000ff" size="2">&lt;/</font>
        <font color="#a31515" size="2">controls</font>
        <font color="#0000ff" size="2">&gt;<br /></font>
        <font color="#0000ff" size="2">&lt;!--<font color="#008000" size="2"> ======
Added for Ajax  end ====== </font><font color="#0000ff" size="2">--&gt;</font></font>
        <p class="step">
Step 7: Add this at the very end of your web.config, just above the &lt;/configuration&gt;
line
</p>
        <p>
Of course you could stick it somewhere else, but let's be neat here... This is the
section that first thing that you put into your web.config (the &lt;sectionGroup...&gt;
referenced. There is documentation out there on sectionGroups, and they are very handy,
if you get interested. I have left a lot of commented lines in there for if you need
them. And, once more repeat after me, if you are not using 3.5, check the Version!
</p>
        <font color="#0000ff" size="2">
          <p>
&lt;!--
</p>
        </font>
        <font color="#008000" size="2"> ====== Added for Ajax start ====== </font>
        <font color="#0000ff" size="2">--&gt;<br />
&lt;</font>
        <font color="#a31515" size="2">system.web.extensions</font>
        <font color="#0000ff" size="2">&gt;<br />
    &lt;</font>
        <font color="#a31515" size="2">scripting</font>
        <font color="#0000ff" size="2">&gt;<br />
        &lt;</font>
        <font color="#a31515" size="2">webServices</font>
        <font color="#0000ff" size="2">&gt;<br />
            &lt;!--</font>
        <font color="#008000" size="2"> Uncomment
this line to enable the authentication 
<br />
               
service. Include requireSSL="true" if appropriate. </font>
        <font color="#0000ff" size="2">--&gt;<br />
              
 &lt;!-- </font>
        <font color="#008000" size="2">&lt;authenticationService enabled="true"
requireSSL = "true|false"/&gt; </font>
        <font color="#0000ff" size="2">--&gt;<br />
             &lt;!--</font>
        <font color="#008000" size="2"> Uncomment
these lines to enable the profile service. 
<br />
                  
To allow profile properties to be retrieved and modified <br />
                   in
ASP.NET AJAX applications, you need to add each property 
<br />
                  
name to the readAccessProperties and <br />
                   writeAccessProperties
attributes. </font>
        <font color="#0000ff" size="2">--&gt;<br />
               
&lt;!-- </font>
        <font color="#008000" size="2">&lt;profileService enabled="true" 
<br />
                          
readAccessProperties="propertyname1,propertyname2" 
<br />
                          
writeAccessProperties="propertyname1,propertyname2" /&gt; </font>
        <font color="#0000ff" size="2">--&gt;<br />
 </font>
        <font color="#0000ff" size="2">       &lt;/</font>
        <font color="#a31515" size="2">webServices</font>
        <font color="#0000ff" size="2">&gt;<br />
        &lt;!-- </font>
        <font color="#008000" size="2">&lt;scriptResourceHandler
enableCompression="true" enableCaching="true" /&gt; </font>
        <font color="#0000ff" size="2">--&gt;<br />
    </font>
        <font color="#0000ff" size="2">&lt;/</font>
        <font color="#a31515" size="2">scripting</font>
        <font color="#0000ff" size="2">&gt;<br />
&lt;/</font>
        <font color="#a31515" size="2">system.web.extensions</font>
        <font color="#0000ff" size="2">&gt;<br />
&lt;</font>
        <font color="#a31515" size="2">system.webServer</font>
        <font color="#0000ff" size="2">&gt;<br />
    &lt;</font>
        <font color="#a31515" size="2">validation</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">validateIntegratedModeConfiguration</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">false</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br />
        &lt;</font>
        <font color="#a31515" size="2">modules</font>
        <font color="#0000ff" size="2">&gt;<br />
            &lt;</font>
        <font color="#a31515" size="2">add</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">ScriptModule</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">preCondition</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">integratedMode</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Handlers.ScriptModule, <br />
                System.Web.Extensions,
Version=3.5.0.0, Culture=neutral, <br />
                PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br />
        &lt;/</font>
        <font color="#a31515" size="2">modules</font>
        <font color="#0000ff" size="2">&gt;<br />
        &lt;</font>
        <font color="#a31515" size="2">handlers</font>
        <font color="#0000ff" size="2">&gt;<br />
            &lt;</font>
        <font color="#a31515" size="2">remove</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">WebServiceHandlerFactory-Integrated</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br />
            &lt;</font>
        <font color="#a31515" size="2">add</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">ScriptHandlerFactory</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">verb</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">*</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">path</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">*.asmx</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                  </font>
        <font color="#ff0000" size="2">preCondition</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">integratedMode</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                  </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Script.Services.ScriptHandlerFactory, 
<br />
                 
System.Web.Extensions, Version=3.5.0.0, Culture=neutral, <br />
                  PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br />
            &lt;</font>
        <font color="#a31515" size="2">add</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">ScriptHandlerFactoryAppServices</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">verb</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">*</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                  </font>
        <font color="#ff0000" size="2">path</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">*_AppService.axd</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">preCondition</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">integratedMode</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                  </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Script.Services.ScriptHandlerFactory, 
<br />
                 
System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
<br />
                 
PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br />
            &lt;</font>
        <font color="#a31515" size="2">add</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">name</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">ScriptResource</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">preCondition</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">integratedMode</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                  </font>
        <font color="#ff0000" size="2">verb</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">GET,HEAD</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
        </font>
        <font color="#ff0000" size="2">path</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">ScriptResource.axd</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">
          <br />
                  </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">=</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2">System.Web.Handlers.ScriptResourceHandler, 
<br />
                 
System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
<br />
                 
PublicKeyToken=31bf3856ad364e35</font>
        <font color="#000000" size="2">"</font>
        <font color="#0000ff" size="2"> /&gt;<br />
        &lt;/</font>
        <font color="#a31515" size="2">handlers</font>
        <font color="#0000ff" size="2">&gt;<br />
&lt;/</font>
        <font color="#a31515" size="2">system.webServer</font>
        <font color="#0000ff" size="2">&gt;<br />
&lt;!--</font>
        <font color="#008000" size="2"> ====== Added for Ajax  end
====== </font>
        <font color="#0000ff" size="2">--&gt;</font>
        <p class="step">
Step 8: Add a ScriptManager to your Master Page
</p>
        <p>
You can always do it dynamically, and I always check in my code to see if it
exists before whatever webpart I am writing loads, but it is much simpler just to
add it on your Master Page. Just stick it below the &lt;form id="Form1"... &gt; entry
:<br /><font color="#0000ff" size="2"><br /></font><font color="#0000ff" size="2">&lt;</font><font color="#a31515" size="2">asp</font><font color="#0000ff" size="2">:</font><font color="#a31515" size="2">ScriptManager</font><font size="2"></font><font color="#ff0000" size="2">runat</font><font color="#0000ff" size="2">="server"</font><font size="2"></font><font color="#ff0000" size="2">ID</font><font color="#0000ff" size="2">="ScriptManager1
/</font><font color="#0000ff" size="2">&gt;</font></p>
        <p>
Please note that there are a LOT of other goodies you can add to your ScriptManager,
especially in .net 3.5, so feel free to expand it. Just make sure it is in there.
</p>
        <p class="step">
Step 9: Write Ajax pages (or webparts).
</p>
        <p>
If you have followed these directions you should be ready to roll. I have not included
how to add the AjaxControlToolkit, but if you are this far it is fairly a no-brainer.
Add the .dll to the GAC; add the assembly reference to the web.config 'assemblies',
add the namespace entry to the web.config 'controls' section and you are ready to
rock! 
</p>
        <p class="step">
Final NOTE!!! UpdatePanels on Pre-SP1 ...
</p>
        <p>
You may need to add the following code to get UpdatePanels to work properly, just
put it in your Master Page
</p>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">&lt;</font>
        <font color="#a31515" size="2">script</font>
        <font size="2">
        </font>
        <font color="#ff0000" size="2">type</font>
        <font color="#0000ff" size="2">="text/javascript"&gt;<br />
    </font>
        <font size="2">_spOriginalFormAction = document.forms[0].action; 
<br />
    </font>
        <font size="2">_spSuppressFormOnSubmitWrapper=true;<br /></font>
        <font color="#0000ff" size="2">&lt;/</font>
        <font color="#a31515" size="2">script</font>
        <font color="#0000ff" size="2">&gt;
</font>
        <img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=e6eef807-abf5-44cb-a9ce-f789d97514ee" />
      </body>
      <title>Sharepoint 2007 and Ajax</title>
      <guid isPermaLink="false">http://www.myfriedmind.com/techBlog/PermaLink,guid,e6eef807-abf5-44cb-a9ce-f789d97514ee.aspx</guid>
      <link>http://www.myfriedmind.com/techBlog/2009/05/14/Sharepoint2007AndAjax.aspx</link>
      <pubDate>Thu, 14 May 2009 18:50:48 GMT</pubDate>
      <description>&lt;p&gt;
Recently someone asked about using Ajax on Sharepoint.&amp;nbsp;I should note that a number
of resources are out there on this which I used, so - as brilliant as&amp;nbsp;I am &amp;lt;g&amp;gt;
- the credit for this has to go to those who have gone before...
&lt;/p&gt;
&lt;p&gt;
Like a lot of people I have been working on both since their betas, so whether or
not I should install Ajax on Sharepoint was a no-brainer. Unfortunately, when Sharepoint
2007 first came out it was the very end of 2006 and Ajax was not officially released
until January 23, 2007. As a result, in order to utilize Ajax on Sharepoint (pre-SP1)
you needed to jump through a whole host of hoops. This is not to say it could not
be done, merely that it was a cumbersome and painful process.
&lt;/p&gt;
&lt;p class=step&gt;
Step 1: Install SP1 on Sharepoint
&lt;/p&gt;
&lt;p&gt;
Luckily the folks on the Sharepoint team made that&amp;nbsp;a priority, and even though&amp;nbsp;we
had to wait a bit for it, they did include 'Ajax support' in SP1. So the first step
to using Ajax on Sharepoint 2007 is, quite simply, install Sharepoint 2007 SP1. You
can do it without SP1, but really, why would you?
&lt;/p&gt;
&lt;p&gt;
Note that simply installing SP1 does not automatically turn on Ajax (there are more
steps) but it removes some of the bugs that popped up.
&lt;/p&gt;
&lt;p class=step&gt;
Step 2: (Recommended): Install Asp.Net framework 3.5 SP1
&lt;/p&gt;
&lt;p&gt;
The next thing that I strongly suggest is that you upgrade to .Net 3.5 (sp1). Why?
Simply because if you are going to be doing any Ajax you will want to. 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
It includes it directly in the framework, no need to install it separately 
&lt;li&gt;
It has awesome debugging - you will still use Fiddler, but less often 
&lt;li&gt;
Intellisense 
&lt;li&gt;
Much, much easier means of creating a 'tracking history' of Ajax calls&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
If you decide to install .Net 3.5, note that you will not see a Web Service Extension
for it in the IIS Manager. This is not a flaw, this is because 3.5 is an extension
of 2.0. Let me state that again - if you install 3.5 you will actually use 2.0 as
the .Net version.
&lt;/p&gt;
&lt;p&gt;
Doing these two steps does not mean that Ajax is automatically up and running, just
that the necessary dlls have been put into the GAC.
&lt;/p&gt;
&lt;p&gt;
One final note - if you install 3.5 you will be using version 3.5.0.0 of System.Web.UI.*
in a number of your web.config entries. If you are using an earlier version, make
sure to check the GAC and find out what the specific version is. Most of the rest
of the steps involve modifying your web.config, so make sure you know your System.Web.UI.Extensions
version before you being
&lt;/p&gt;
&lt;p class=step&gt;
Step 2a: Make a back up of your web.config
&lt;/p&gt;
&lt;p&gt;
We are all good techies here, right? Which means we are all paranoid, right? Never,
ever modify your web.config unless you have a rollback copy at hand. Remember, paranoia
is a job-requirement.
&lt;/p&gt;
&lt;p class=step&gt;
Step 3: Add the&amp;nbsp;system.web.extensions&amp;nbsp;sectionGroups to the configSections
of your web.config
&lt;/p&gt;
&lt;p&gt;
If you are not familiar with Sharepoint, this will be located in your c:\inetpub\wwwroot\VirtualDirectories\wss\{your
site's port here}. So if you have your Sharepoint on port 8080 your web.config will
be located at c:\inetpub\wwwroot\VirtualDirectories\wss\8080. Remember to make a copy
of it like a good, paranoid nerd. Also, I tend to remark what I am adding and why
to my web.config, but you don't have to.
&lt;/p&gt;
&lt;p&gt;
Add this in the &amp;lt;configSections&amp;gt; portion, which should be at the top. You will
already see other &amp;lt;sectionGroup... &amp;gt; entries there, just add this one at the
end (above the &amp;lt;/configSections&amp;gt; entry), wrapped for readability...
&lt;/p&gt;
&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
&amp;lt;!--
&lt;/font&gt;&lt;font color=#008000 size=2&gt; ======= Added for Ajax start ====== &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;br&gt;
&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;sectionGroup&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;system.web.extensions&lt;/font&gt;&lt;font color=#000000 size=2&gt;" 
&lt;br&gt;
&lt;/font&gt;&lt;font color=#ff0000 size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Configuration.SystemWebExtensionsSectionGroup, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Web.Extensions,&amp;nbsp;Version=3.5.0.0,
Culture=neutral,&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;sectionGroup&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;scripting&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Configuration.ScriptingSectionGroup, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Extensions,
Version=3.5.0.0,&amp;nbsp;&amp;nbsp;&lt;br&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Culture=neutral,
PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;section&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;scriptResourceHandler&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Configuration.ScriptingScriptResourceHandlerSection,&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Web.Extensions,&amp;nbsp;Version=3.5.0.0,
Culture=neutral, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;requirePermission&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;false&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;allowDefinition&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;MachineToApplication&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;sectionGroup&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;webServices&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Configuration.ScriptingWebServicesSectionGroup, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
System.Web.Extensions,&amp;nbsp;Version=3.5.0.0, Culture=neutral, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;section&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;jsonSerialization&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Configuration.ScriptingJsonSerializationSection, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;requirePermission&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;false&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;allowDefinition&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;Everywhere&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;section&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;profileService&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Configuration.ScriptingProfileServiceSection,&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Web.Extensions,
Version=3.5.0.0, Culture=neutral, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;requirePermission&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;false&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;allowDefinition&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;MachineToApplication&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;section&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;authenticationService&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Configuration.ScriptingAuthenticationServiceSection, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;requirePermission&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;false&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;allowDefinition&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;MachineToApplication&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;sectionGroup&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;sectionGroup&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;sectionGroup&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;lt;!--&lt;/font&gt;&lt;font color=#008000 size=2&gt; ======= Added for Ajax end ====== &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;/font&gt;&gt;
&lt;p class=step&gt;
Step 4: Add System.Web.Extensions as a "SafeControl" to your web.config
&lt;/p&gt;
&lt;p&gt;
SafeControls are those assemblies that should be considered "Safe" by Sharepoint.
Do a quick find for &amp;lt;SafeControls&amp;gt; and you will see a whole lotta them. Simply
add this line to the bottom, above the &amp;lt;/SafeControls&amp;gt;. 
&lt;/p&gt;
&lt;p&gt;
NOTE!!! If you are using a different version than .net 3.5, make sure that you verify
what version it is in the GAC. This needs to be specified in the "Version" section
or Sharepoint will throw an error. Because I am using 3.5, my version is 3.5.0.0
&lt;/p&gt;
&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
&amp;lt;!--
&lt;/font&gt;&lt;font color=#008000 size=2&gt; ====== Added for Ajax&amp;nbsp; ====== &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;br&gt;
&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;SafeControl&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;Assembly&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Extensions,
Version=3.5.0.0, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;Culture=neutral,
PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;nbsp; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;Namespace&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.UI&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;TypeName&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;*&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;Safe&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;True&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&gt;
&lt;/font&gt; 
&lt;p class=step&gt;
Step 5: Add the needed "verbs" to your &amp;lt;httpHandlers&amp;gt;
&lt;/p&gt;
&lt;p&gt;
Note that this is NOT the &amp;lt;httpModules&amp;gt; section. There should already be some
entries there, so just stick this at the end, above the &amp;lt;/httpHandlers&amp;gt; line....
&lt;/p&gt;
&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
&amp;lt;!--
&lt;/font&gt;&lt;font color=#008000 size=2&gt; ====== Added for Ajax start ====== &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;br&gt;
&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;add&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;verb&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;*&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;path&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;*.asmx&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;validate&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;false&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Script.Services.ScriptHandlerFactory, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Web.Extensions, Version=3.5.0.0,
Culture=neutral, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;add&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;verb&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;*&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;path&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;*_AppService.axd&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;validate&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;false&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Script.Services.ScriptHandlerFactory,&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Web.Extensions, Version=3.5.0.0, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Culture=neutral, PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;add&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;verb&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;GET,HEAD&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;path&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;ScriptResource.axd&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Handlers.ScriptResourceHandler,&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Web.Extensions, Version=3.5.0.0,
Culture=neutral, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;validate&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;false&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&amp;lt;!--&lt;/font&gt;&lt;font color=#008000 size=2&gt; ====== Added for Ajax end ====== &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;/font&gt;&gt;
&lt;p class=step&gt;
Step 6: Add the &amp;lt;controls&amp;gt; reference to the &amp;lt;pages...&amp;gt; section of the
web.config
&lt;/p&gt;
&lt;p&gt;
This will enable your pages to recognize the controls that come with Ajax (such as
the ScriptManager, etc). Locate the &amp;lt;pages ...&amp;gt; section and add this at the
end above the &amp;lt;/pages&amp;gt; entry. Again, keep an eye on the Version.
&lt;/p&gt;
&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
&amp;lt;!--
&lt;/font&gt;&lt;font color=#008000 size=2&gt; ====== Added for Ajax&amp;nbsp; ====== &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;br&gt;
&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;controls&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;add&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;tagPrefix&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;asp&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;namespace&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.UI&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;assembly&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Extensions,
Version=3.5.0.0, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Culture=neutral, PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;controls&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;!--&lt;font color=#008000 size=2&gt; ====== Added
for Ajax&amp;nbsp;&amp;nbsp;end ====== &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;/font&gt;&gt;
&lt;/font&gt; 
&lt;p class=step&gt;
Step 7: Add this at the very end of your web.config, just above the &amp;lt;/configuration&amp;gt;
line
&lt;/p&gt;
&lt;p&gt;
Of course you could stick it somewhere else, but let's be neat here... This is the
section that first thing that you put into your web.config (the &amp;lt;sectionGroup...&amp;gt;
referenced. There is documentation out there on sectionGroups, and they are very handy,
if you get interested. I have left a lot of commented lines in there for if you need
them. And, once more repeat after me, if you are not using 3.5, check the Version!
&lt;/p&gt;
&lt;font color=#0000ff size=2&gt; 
&lt;p&gt;
&amp;lt;!--
&lt;/font&gt;&lt;font color=#008000 size=2&gt; ====== Added for Ajax start ====== &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;br&gt;
&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;system.web.extensions&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;scripting&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;webServices&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/font&gt;&lt;font color=#008000 size=2&gt; Uncomment
this line to enable the authentication 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
service. Include requireSSL="true" if appropriate. &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;lt;!-- &lt;/font&gt;&lt;font color=#008000 size=2&gt;&amp;lt;authenticationService enabled="true"
requireSSL = "true|false"/&amp;gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!--&lt;/font&gt;&lt;font color=#008000 size=2&gt; Uncomment
these lines to enable the profile service. 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
To allow profile properties to be retrieved and modified&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;in
ASP.NET AJAX applications, you need to add each property 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
name to the readAccessProperties and&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;writeAccessProperties
attributes. &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;lt;!-- &lt;/font&gt;&lt;font color=#008000 size=2&gt;&amp;lt;profileService enabled="true" 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
readAccessProperties="propertyname1,propertyname2" 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
writeAccessProperties="propertyname1,propertyname2" /&amp;gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;br&gt;
&amp;nbsp;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;webServices&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-- &lt;/font&gt;&lt;font color=#008000 size=2&gt;&amp;lt;scriptResourceHandler
enableCompression="true" enableCaching="true" /&amp;gt; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;scripting&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;system.web.extensions&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;system.webServer&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;validation&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;validateIntegratedModeConfiguration&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;false&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;modules&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;add&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;ScriptModule&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;preCondition&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;integratedMode&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Handlers.ScriptModule,&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Web.Extensions,
Version=3.5.0.0, Culture=neutral,&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;modules&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;handlers&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;remove&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;WebServiceHandlerFactory-Integrated&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;add&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;ScriptHandlerFactory&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;verb&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;*&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;path&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;*.asmx&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;preCondition&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;integratedMode&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Script.Services.ScriptHandlerFactory, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
System.Web.Extensions, Version=3.5.0.0, Culture=neutral,&amp;nbsp;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;add&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;ScriptHandlerFactoryAppServices&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;verb&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;*&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;path&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;*_AppService.axd&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;preCondition&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;integratedMode&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Script.Services.ScriptHandlerFactory, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;add&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;name&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;ScriptResource&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;preCondition&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;integratedMode&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;verb&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;GET,HEAD&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;path&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;ScriptResource.axd&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;=&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt;System.Web.Handlers.ScriptResourceHandler, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
System.Web.Extensions, Version=3.5.0.0, Culture=neutral, 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
PublicKeyToken=31bf3856ad364e35&lt;/font&gt;&lt;font color=#000000 size=2&gt;"&lt;/font&gt;&lt;font color=#0000ff size=2&gt; /&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;handlers&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;system.webServer&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;br&gt;
&amp;lt;!--&lt;/font&gt;&lt;font color=#008000 size=2&gt; ====== Added for Ajax&amp;nbsp;&amp;nbsp;end ====== &lt;/font&gt;&lt;font color=#0000ff size=2&gt;--&amp;gt;&lt;/font&gt;&gt;
&lt;p class=step&gt;
Step 8: Add a ScriptManager to your Master Page
&lt;/p&gt;
&lt;p&gt;
You can always do it dynamically, and I always check in my code&amp;nbsp;to see if it
exists before whatever webpart I am writing loads, but it is much simpler just to
add it on your Master Page. Just stick it below the&amp;nbsp;&amp;lt;form id="Form1"... &amp;gt;&amp;nbsp;entry
:&lt;br&gt;
&lt;font color=#0000ff size=2&gt;
&lt;br&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;asp&lt;/font&gt;&lt;font color=#0000ff size=2&gt;:&lt;/font&gt;&lt;font color=#a31515 size=2&gt;ScriptManager&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;runat&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="server"&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;ID&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="ScriptManager1
/&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
Please note that there are a LOT of other goodies you can add to your ScriptManager,
especially in .net 3.5, so feel free to expand it. Just make sure it is in there.
&lt;/p&gt;
&lt;p class=step&gt;
Step 9: Write Ajax pages (or webparts).
&lt;/p&gt;
&lt;p&gt;
If you have followed these directions you should be ready to roll. I have not included
how to add the AjaxControlToolkit, but if you are this far it is fairly a no-brainer.
Add the .dll to the GAC; add the assembly reference to the web.config 'assemblies',
add the namespace entry to the web.config 'controls' section and you are ready to
rock!&amp;nbsp;
&lt;/p&gt;
&lt;p class=step&gt;
Final NOTE!!! UpdatePanels on Pre-SP1 ...
&lt;/p&gt;
&lt;p&gt;
You may need to add the following code to get UpdatePanels to work properly, just
put it in your Master Page
&lt;/p&gt;
&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#a31515 size=2&gt;script&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#ff0000 size=2&gt;type&lt;/font&gt;&lt;font color=#0000ff size=2&gt;="text/javascript"&amp;gt;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font size=2&gt;_spOriginalFormAction = document.forms[0].action; 
&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;font size=2&gt;_spSuppressFormOnSubmitWrapper=true;&lt;br&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;lt;/&lt;/font&gt;&lt;font color=#a31515 size=2&gt;script&lt;/font&gt;&lt;font color=#0000ff size=2&gt;&amp;gt;&gt;
&lt;/font&gt;&lt;img width="0" height="0" src="http://www.myfriedmind.com/techBlog/aggbug.ashx?id=e6eef807-abf5-44cb-a9ce-f789d97514ee" /&gt;</description>
      <comments>http://www.myfriedmind.com/techBlog/CommentView,guid,e6eef807-abf5-44cb-a9ce-f789d97514ee.aspx</comments>
      <category>Ajax</category>
      <category>Asp.Net</category>
      <category>c#</category>
      <category>Sharepoint 2007</category>
    </item>
  </channel>
</rss>