<feed xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US">
    <title>Welcome to Jason Huh's blog</title>
    <link rel="self" type="application/atom+xml" href="http://jyhuh.com/blog/Atom.aspx" />
    <subtitle type="html">Avanade Knowledge MVP, MCPD-EA, MCTS:MOSS 2007</subtitle>
    <id>http://jyhuh.com/blog/Default.aspx</id>
    <author>
        <name>Jason Huh</name>
        <uri>http://jyhuh.com/blog/Default.aspx</uri>
    </author>
    <generator uri="http://subtextproject.com" version="Subtext Version 2.0.0.43">Subtext</generator>
    <updated>2008-10-11T17:27:01Z</updated>
    <entry>
        <title>A SharePoint Site "CON" Returns "An unexpected error has occurred."</title>
        <link rel="alternate" type="text/html" href="http://jyhuh.com/blog/archive/2008/10/11/sharepoint_bug_con_com1_com4_prn_aux_lpt1.aspx" />
        <id>http://jyhuh.com/blog/archive/2008/10/11/sharepoint_bug_con_com1_com4_prn_aux_lpt1.aspx</id>
        <published>2008-10-11T17:19:45Z</published>
        <updated>2008-10-11T17:19:45Z</updated>
        <content type="html">&lt;div&gt;I tried to create a SharePoint site for contact records with CON as a site name, i.e. http://[server]/sites/CON. A site returned "An unexpected error has occurred." After contacting Microsoft product support service team, I found out that it is a product issue -- You can call it a bug or a feature by design. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a response from Microsoft product support service: &lt;br /&gt;
"MS-DOS device names are reserved words and cannot be used as folder or file names. When parsing a reference to a file or folder, Windows checks for the case in which a single MS-DOS device name is used in the path, and treats it as invalid." &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The support team also provided this KB article - http://support.microsoft.com/kb/71843. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following words are reserved in MS-DOS. You will not be able to use the following words as a sub site name or folder name: &lt;br /&gt;
&lt;br /&gt;
CON, COM1 - COM4, PRN, AUX, LPT1&lt;/div&gt;&lt;img src="http://jyhuh.com/blog/aggbug/42.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://jyhuh.com/blog/comments/42.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://jyhuh.com/blog/comments/commentRss/42.aspx</wfw:commentRss>
        <trackback:ping>http://jyhuh.com/blog/services/trackbacks/42.aspx</trackback:ping>
    </entry>
    <entry>
        <title>How to Update Created, Created By, Modified and Modified By field?</title>
        <link rel="alternate" type="text/html" href="http://jyhuh.com/blog/archive/2008/09/10/sharepoint_created_modified_updateoverwriteversion.aspx" />
        <id>http://jyhuh.com/blog/archive/2008/09/10/sharepoint_created_modified_updateoverwriteversion.aspx</id>
        <published>2008-10-11T17:18:09Z</published>
        <updated>2008-10-11T17:18:09Z</updated>
        <content type="html">&lt;div&gt;I stumbled upon &lt;a href="http://social.technet.microsoft.com/Forums/en-US/sharepointdevelopment/threads/#page:2"&gt;this Technet Forum post&lt;/a&gt;. Using the SPListItem.UpdateOverwriteVersion method, you can overwrite Created, Created By, Modified and Modified By fields. Here is a code snippet from &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splistitem.updateoverwriteversion.aspx"&gt;this MSDN article&lt;/a&gt;: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="bgcolor: lightgray"&gt;
&lt;pre&gt;      using (SPSite sps = new SPSite("http://server/"))
&lt;br /&gt;      {
&lt;br /&gt;          using (SPWeb spw = sps.OpenWeb())
&lt;br /&gt;          {
&lt;br /&gt;              SPList spSharedDocs = spw.Lists["Shared Documents"];
&lt;br /&gt;              SPListItem spli = spSharedDocs.Items[0];
&lt;br /&gt;              spli["Created"] = new DateTime(2007, 1, 1);
&lt;br /&gt;              spli["Author"] = "-1;#domain\\user";
&lt;br /&gt;              spli["Editor"] = "-1;#domain\\user";
&lt;br /&gt;              spli["Modified"] = new DateTime(2007, 2, 1);
&lt;br /&gt;              spli.UpdateOverwriteVersion();
&lt;br /&gt;          }
&lt;br /&gt;      }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;img src="http://jyhuh.com/blog/aggbug/41.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://jyhuh.com/blog/comments/41.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://jyhuh.com/blog/comments/commentRss/41.aspx</wfw:commentRss>
        <trackback:ping>http://jyhuh.com/blog/services/trackbacks/41.aspx</trackback:ping>
    </entry>
    <entry>
        <title>How to Create a Login/Registration System Using FBA with Active Directory in a SharePoint Server 2007</title>
        <link rel="alternate" type="text/html" href="http://jyhuh.com/blog/archive/2008/09/09/sharepoint_fba_active_directory.aspx" />
        <id>http://jyhuh.com/blog/archive/2008/09/09/sharepoint_fba_active_directory.aspx</id>
        <published>2008-10-11T17:13:01Z</published>
        <updated>2008-10-11T17:27:01Z</updated>
        <content type="html">&lt;div&gt;
	To use the forms based authentication(FBA) against an Active Directory(AD) for a SharePoint Server 2007, you will need to use the &lt;a href="http://msdn.microsoft.com/en-us/library/ms998347.aspx#paght000022_usingtheactivedirectorymembershipprovider"&gt;ActiveDirectoryMembershipProvider&lt;/a&gt; in ASP.NET 2.0. I outlined key steps to enable FBA against an AD for a SharePoint Server 2007.
&lt;/div&gt;
&lt;div&gt;
	&lt;br /&gt;
	&lt;div&gt;
		&lt;font size="4"&gt;
			&lt;strong&gt;Step 1 - Edit the AD Schema&lt;/strong&gt;
		&lt;/font&gt;
	&lt;/div&gt;
	To suppport Password Reset (Password Recovery), you will need to edit the AD schema by running the following command: &lt;font style="FONT-WEIGHT: bold"&gt;regsvr32.exe schmmgmt.dll.&lt;/font&gt; The detailed step to edit the AD is defined in Password Reset section of &lt;a href="http://msdn.microsoft.com/en-us/library/ms998360.aspx"&gt;this article&lt;/a&gt;. &lt;br /&gt;
	&lt;div&gt;
		&lt;br /&gt;
		&lt;div&gt;
			&lt;strong&gt;
				&lt;font size="4"&gt;Step 2 - Set up Intranet and Extranet Zone&lt;/font&gt;
			&lt;/strong&gt;
		&lt;/div&gt;
		Once the AD schema has been edited, you will need to set up a SharePoint Site with Intranet and Extranet Zones. Here is a quick how-to:
		&lt;div&gt;
			&lt;br /&gt;
			&lt;div&gt;
				&lt;strong&gt;2.1. Create the Web Application for the Extranet Zone&lt;/strong&gt;
				&lt;br /&gt;
			&lt;/div&gt;
			&lt;ol&gt;
				&lt;li&gt;
					On your SharePoint server, open up &lt;strong&gt;SharePoint Central Administration&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click on the &lt;strong&gt;Application Management&lt;/strong&gt; tab &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click &lt;strong&gt;Create or Extend Web Application&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click &lt;strong&gt;Create a new Web application&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Fill out the fields as appropriate for your web application and click &lt;strong&gt;OK&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					After the operation completes, open up a command prompt and run &lt;strong&gt;iisreset /noforce&lt;/strong&gt; command &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					On the &lt;strong&gt;Application Created page&lt;/strong&gt;, clik on the &lt;strong&gt;Create Site Collection link&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Fill out the fields as appropriate for your site collection and click &lt;strong&gt;OK&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					After the operation completes, on the &lt;strong&gt;Application Management&lt;/strong&gt; tab, click &lt;strong&gt;Authentication providers&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Make sure your newly-created web application is selected and click on the &lt;strong&gt;Default&lt;/strong&gt; zone &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Select &lt;strong&gt;Forms&lt;/strong&gt; as the &lt;strong&gt;Authentication Type&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Check the &lt;strong&gt;Enable anonymous access&lt;/strong&gt; checkbox &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Type in the name of your membership provider name (i.e. &lt;em&gt;PortalMembershipProvider&lt;/em&gt;) in the &lt;strong&gt;Membership provider name &lt;/strong&gt;textbox &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Type in the name of your role manager name (i.e. &lt;em&gt;PortalRoleManager&lt;/em&gt;) in the &lt;strong&gt;Role manager name&lt;/strong&gt; textbox &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Select &lt;strong&gt;No&lt;/strong&gt; for &lt;strong&gt;Enable Client Integration&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click &lt;strong&gt;Save&lt;/strong&gt;
				&lt;/li&gt;
			&lt;/ol&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;strong&gt;2.2. Extend the Web Application to the Intranet Zone&lt;/strong&gt;
				&lt;br /&gt;
			&lt;/p&gt;
			&lt;ol&gt;
				&lt;li&gt;
					On your SharePoint server, open up &lt;strong&gt;SharePoint Central Administration&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click on the &lt;strong&gt;Application Management&lt;/strong&gt; tab &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click &lt;strong&gt;Create or Extend Web Application&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click &lt;strong&gt;Extend and existing web application&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Select your newly-created web application in the &lt;strong&gt;Web Application&lt;/strong&gt; dropdown &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Fill out the fields are appropriate for your web application &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Select &lt;strong&gt;Intranet&lt;/strong&gt; from the &lt;strong&gt;Zone&lt;/strong&gt; dropdown &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click &lt;strong&gt;OK&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click on &lt;strong&gt;Authentication providers&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click &lt;strong&gt;Intranet&lt;/strong&gt; zone &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Make sure the &lt;strong&gt;Authentication Type&lt;/strong&gt; is set to &lt;strong&gt;Windows&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Make sure &lt;strong&gt;Enable anonymous access&lt;/strong&gt; is &lt;strong&gt;unchecked&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click &lt;strong&gt;Save&lt;/strong&gt;
				&lt;/li&gt;
			&lt;/ol&gt;
			&lt;font size="4"&gt;
				&lt;strong&gt;Step 3 - Create Roles with AzMan&lt;/strong&gt;
			&lt;/font&gt; &lt;br /&gt;
			&lt;p&gt;
				Windows Authorization Manager (AzMan) is a Windows tool for defining application roles and mapping them to Windows users/AD groups defined in your AD store. &lt;a href="http://msdn.microsoft.com/en-us/library/ms998336.aspx"&gt;This article &lt;/a&gt;explains in details how to create roles with AzMan. I recommend to configure an AzMan policty store in an an xml file for quick development. For a test, staging and production environment, I recommend to configure an AzMan policy store in AD.
			&lt;/p&gt;
			&lt;strong&gt;
				&lt;font size="4"&gt;Step 4 - Edit SharePoint Web.config Files&lt;/font&gt;
			&lt;/strong&gt; &lt;br /&gt;
			&lt;p&gt;
				You will need to mofidy the following three web.config files: &lt;br /&gt;
			&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt;
					Exranet web.config &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Intranet web.config &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;SharePoint Central Administration web.config. &lt;/li&gt;
			&lt;/ul&gt;
			Each web.config file needs to have different modifications made to it, depending on what each web application needs to be configured for. &lt;br /&gt;
			&lt;p&gt;
				&lt;strong&gt;4.1 Extranet web.config&lt;/strong&gt;
			&lt;/p&gt;
			&lt;p&gt;
				The extranet web.config needs four modifications made to it: changes must be made to the &amp;amp;lt;connectionstrings&amp;amp;gt;, &amp;amp;lt;membership&amp;amp;gt;, &amp;amp;lt;rolemanager&amp;amp;gt;, and &amp;amp;lt;authentication&amp;amp;gt; sections.&amp;amp;lt;connectionstrings&amp;amp;gt;&amp;amp;lt;membership&amp;amp;gt;&amp;amp;lt;rolemanager&amp;amp;gt;&amp;amp;lt;authentication&amp;amp;gt; &lt;br /&gt;
				&amp;amp;lt;/authentication&amp;amp;gt;&amp;amp;lt;/rolemanager&amp;amp;gt;&amp;amp;lt;/membership&amp;amp;gt;&amp;amp;lt;/connectionstrings&amp;amp;gt;
			&lt;/p&gt;
			&lt;p&gt;
				&lt;strong&gt;4.1.1 Connection Strings &lt;/strong&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				In order to connect to the AD store for authentication and the AzMan-provided XML file for role definitions, the &amp;amp;lt;connectionstrings&amp;amp;gt; section of the extranet web.config must be modified to include connection string values that point to said resources. The connection string for the AD connection should be an LDAP string to your domain, and the AzMan connection string should be in the format “msxml://
				&lt;path /&gt;
				”. &lt;br /&gt;
				The &amp;amp;lt;connectionstrings&amp;amp;gt; section is a child of the root &amp;amp;lt;configuration&amp;amp;gt; section.&amp;amp;lt;/configuration&amp;amp;gt;&amp;amp;lt;/connectionstrings&amp;amp;gt;&amp;amp;lt;/connectionstrings&amp;amp;gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;br /&gt;
				&lt;font style="COLOR: rgb(255,0,0)"&gt;
					&amp;amp;lt;connectionstrings&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;add name="PortalAdConnection" connectionstring="LDAP://portal.test.com "&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;add name="AzManConnection" connectionstring="msxml://c:/Roles/AzManRoles.xml"&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;/add&amp;amp;gt;&amp;amp;lt;/add&amp;amp;gt;&amp;amp;lt;/connectionstrings&amp;amp;gt;
				&lt;/font&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;br /&gt;
				&lt;strong&gt;4.1.2 Membership Provider&lt;/strong&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				The &amp;amp;lt;membership&amp;amp;gt; section needs to have a membership provider added to it that specifies that AD will be used as the membership store for the SharePoint portal site. &lt;br /&gt;
				The &amp;amp;lt;membership&amp;amp;gt; section is under &amp;amp;lt;configuration&amp;amp;gt;/&amp;amp;lt;system.web&amp;amp;gt;&amp;amp;lt;/system.web&amp;amp;gt;&amp;amp;lt;/configuration&amp;amp;gt;&amp;amp;lt;/membership&amp;amp;gt;&amp;amp;lt;/membership&amp;amp;gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;font style="COLOR: rgb(255,0,0)"&gt;
					&amp;amp;lt;membership defaultprovider="PortalMembershipProvider"&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;providers&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;add name="PortalMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionstringname="PortalAdConnection" connectionusername="UserWithAppropriateRights" connectionpassword="PasswordForUser" connectionprotection="Secure" enablepasswordreset="true" enablesearchmethods="true" requiresquestionandanswer="true" applicationname="/" description="Default AD connection" requiresuniqueemail="true" clientsearchtimeout="30" serversearchtimeout="30" attributemappasswordquestion="department" attributemappasswordanswer="division" attributemapfailedpasswordanswercount="singleIntAttribute" attributemapfailedpasswordanswertime="singleLargeIntAttribute" attributemapfailedpasswordanswerlockouttime="singleLargeIntAttribute" attributemapemail="mail" attributemapusername="userPrincipalName" maxinvalidpasswordattemps="20" passwordattemptwindow="20" passwordanswerattemptlockoutduration="30"&amp;gt;&amp;amp;lt;/add&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;/providers&amp;amp;gt;&amp;amp;lt;/membership&amp;amp;gt;
				&lt;/font&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;br /&gt;
				&lt;strong&gt;4.1.3 Login URL&lt;/strong&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				The
				&lt;forms&gt;
				&lt;/forms&gt;
				section needs to have a login URL specified. This will allow the SharePoint web application to know what web form will be used to authenticate the user with. When authenticated users attempt to access a resource they are not authorized for, they will be redirected to the specified login page and asked to sign in as a different user. &lt;br /&gt;
				The
				&lt;forms&gt;
				&lt;/forms&gt;
				section is under &amp;amp;lt;configuration&amp;amp;gt;/&amp;amp;lt;system.web&amp;amp;gt;/&amp;amp;lt;authentication&amp;amp;gt; &lt;br /&gt;
				&lt;br /&gt;
				&lt;font style="COLOR: rgb(255,0,0)"&gt;
					&amp;amp;lt;authentication mode="Forms"&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;forms loginurl="/_layouts/Portal/login.aspx"&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;/forms&amp;amp;gt;&amp;amp;lt;/authentication&amp;amp;gt;&amp;amp;lt;/authentication&amp;amp;gt;&amp;amp;lt;/system.web&amp;amp;gt;&amp;amp;lt;/configuration&amp;amp;gt;&amp;amp;lt;/forms&amp;amp;gt;&amp;amp;lt;/forms&amp;amp;gt;
				&lt;/font&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt; &lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;strong&gt;4.2 Intranet web.config&lt;/strong&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;The Intranet web.config needs two modifications made to it: changes need to be made to the &amp;amp;lt;connectionstrings&amp;amp;gt; and &amp;amp;lt;rolemanager&amp;amp;gt; sections.&amp;amp;lt;/rolemanager&amp;amp;gt;&amp;amp;lt;/connectionstrings&amp;amp;gt;&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;strong&gt;4.2.1 Connection Strings&lt;/strong&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				In order to connect to the AzMan-provided XML file for role definitions, the &amp;amp;lt;connectionstrings&amp;amp;gt; section of the extranet web.config must be modified to include a connection string value that points to said resource. The connection string for the AzMan XML file should be in the format “msxml://&amp;amp;lt;path&amp;amp;gt;”. &lt;br /&gt;
				The &amp;amp;lt;connectionstrings&amp;amp;gt; section is a child of the root &amp;amp;lt;configuration&amp;amp;gt; section.&amp;amp;lt;/configuration&amp;amp;gt;&amp;amp;lt;/connectionstrings&amp;amp;gt;&amp;amp;lt;/path&amp;amp;gt;&amp;amp;lt;/connectionstrings&amp;amp;gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;font style="COLOR: rgb(255,0,0)"&gt;
					&amp;amp;lt;connectionstrings&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;add name="AzManConnection" connectionstring="msxml://c:/Roles/AzManRoles.xml"&amp;amp;gt;&amp;amp;lt;/add&amp;amp;gt;&amp;amp;lt;/connectionstrings&amp;amp;gt;
				&lt;/font&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;br /&gt;
				4.2.2 Role Provider
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				The &amp;amp;lt;rolemanager&amp;amp;gt; section needs to have a role provider added to it that specifies that the AzMan-created XML file will supply roles to the SharePoint web application. &lt;br /&gt;
				The &amp;amp;lt;rolemanager&amp;amp;gt; section is under &amp;amp;lt;configuration&amp;amp;gt;/&amp;amp;lt;system.web&amp;amp;gt; &lt;br /&gt;
				&amp;amp;lt;/system.web&amp;amp;gt;&amp;amp;lt;/configuration&amp;amp;gt;&amp;amp;lt;/rolemanager&amp;amp;gt;&amp;amp;lt;/rolemanager&amp;amp;gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;font style="COLOR: rgb(255,0,0)"&gt;
					&amp;amp;lt;rolemanager enabled="true" defaultprovider="PortalRoleProvider" cacherolesincookie="true" cookieprotection="All" cookietimeout="10" cookiename=".PortalRole"&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;providers&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;clear&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;add connectionstringname="AzMan" applicationname="AzManPortal" name="PortalRoleProvider" type="System.Web.Security.AuthorizationStoreRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, publicKeyToken=b03f5f7f11d50a3a"&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;/add&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;/clear&amp;amp;gt;&amp;amp;lt;/providers&amp;amp;gt;&amp;amp;lt;/rolemanager&amp;amp;gt;
				&lt;/font&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;br /&gt;
				&lt;strong&gt;4.3 SharePoint Central Administration web.config&lt;/strong&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;The SharePoint Central Administration web.config only needs a modification to the &amp;amp;lt;rolemanager&amp;amp;gt; &amp;amp;lt;/rolemanager&amp;amp;gt;&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;strong&gt;4.3.1 Role Provider&lt;/strong&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				The &amp;amp;lt;rolemanager&amp;amp;gt; section needs to be enabled and have its default provider set to the ASP.NET Windows token provider. &lt;br /&gt;
				The &amp;amp;lt;rolemanager&amp;amp;gt; section is under &amp;amp;lt;configuration&amp;amp;gt;/&amp;amp;lt;system.web&amp;amp;gt; &lt;br /&gt;
				&lt;font style="COLOR: rgb(255,0,0)"&gt;
					&amp;amp;lt;rolemanager enabled="true" defaultprovider="AspNetWindowsTokenProvider"&amp;amp;gt; &lt;br /&gt;
					&amp;amp;lt;/rolemanager&amp;amp;gt;&amp;amp;lt;/system.web&amp;amp;gt;&amp;amp;lt;/configuration&amp;amp;gt;&amp;amp;lt;/rolemanager&amp;amp;gt;&amp;amp;lt;/rolemanager&amp;amp;gt;
				&lt;/font&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;strong&gt;Step 5 - Map AzMan Roles to SharePoint Site Groups&lt;/strong&gt;
				&lt;br /&gt;
			&lt;/p&gt;
			&lt;p&gt;
				Without performing this mapping, you may notice that users can authenticate against the AD store, but will not be authorized to view any restricted SharePoint content not configured for anonymous access. The reason for this is that the SharePoint web application can confirm the username/password combination against AD, but it cannot know the role(s) of the user without them being somehow mapped to security groups within SharePoint. &lt;br /&gt;
			&lt;/p&gt;
			&lt;p&gt;
				&lt;strong&gt;5.5 Mapping Application Roles to Site Groups&lt;/strong&gt;
				&lt;br /&gt;
			&lt;/p&gt;
			&lt;ol&gt;
				&lt;li&gt;
					As an administrator of the SharePoint portal site, open up the &lt;strong&gt;Intranet&lt;/strong&gt; home page &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click on &lt;strong&gt;Site Actions -&amp;gt; Site Settings&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click on &lt;strong&gt;People and groups&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click on one of your SharePoint site groups, i.e. Site Members &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Click &lt;strong&gt;New&lt;/strong&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					In the Users/Groups multi-line textbox, you should be able to add the roles that you defined with AzMan and successfully perform a check name operation against them. &lt;br /&gt;
				&lt;/li&gt;
			&lt;/ol&gt;
			&lt;p&gt;
				You finished all the steps necessary to create a login/registration system. Now, using Microsoft Visual Studio, you can create a login, registration, password recovery, etc. by following &lt;a href="http://msdn.microsoft.com/en-us/library/879kf95c.aspx"&gt;this article&lt;/a&gt;.
			&lt;/p&gt;
			&lt;p&gt; &lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;font size="4"&gt;
					&lt;strong&gt;Summary&lt;/strong&gt;
				&lt;/font&gt;
			&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;In this post, I outlined key steps to create a login/registration system using FBA against AD in a SharePoint Server 2007. I did not necessary go through detailed steps, and refered to other articles instead for further details. Creating a login/registration system in a SharePoint Server 2007 is not a trivial task, but it is certainly possible to do it. Once it is implemented, a SharePoint Server 2007 can act as a great platform for an internet-facing web site or an extranet, supporting all necessary functionalties required for a login and registration process.&lt;/p&gt;
			&lt;br /&gt;
			&lt;p&gt;
				&lt;font size="4"&gt;
					&lt;strong&gt;Other useful links:&lt;/strong&gt;
				&lt;/font&gt;
				&lt;br /&gt;
			&lt;/p&gt;
			&lt;ul&gt;
				&lt;li&gt;
					Dan Attis' articles on how to setup forms based authentication: &lt;br /&gt;
					&lt;a href="http://devcow.com/blogs/jdattis/archive/2007/02/23/Office_SharePoint_Server_2007_Forms_Based_Authentication_FBA_Walkthrough_Part_1.aspx"&gt;http://devcow.com/blogs/jdattis/archive/2007/02/23/Office_SharePoint_Server_2007_Forms_Based_Authentication_FBA_Walkthrough_Part_1.aspx&lt;/a&gt; &lt;br /&gt;
					&lt;a href="http://devcow.com/blogs/jdattis/archive/2007/03/01/Office_SharePoint_Server_2007_Forms_Based_Authentication_FBA_w_MySites_Walkthrough_Part_2.aspx"&gt;http://devcow.com/blogs/jdattis/archive/2007/03/01/Office_SharePoint_Server_2007_Forms_Based_Authentication_FBA_w_MySites_Walkthrough_Part_2.aspx&lt;/a&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Andrew Connel's article: &lt;br /&gt;
					&lt;a href="http://www.andrewconnell.com/blog/articles/HowToConfigPublishingSiteWithDualAuthProvidersAndAnonAccess.aspx"&gt;http://www.andrewconnell.com/blog/articles/HowToConfigPublishingSiteWithDualAuthProvidersAndAnonAccess.aspx&lt;/a&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					Channel 9 article: &lt;br /&gt;
					&lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=299338"&gt;http://channel9.msdn.com/ShowPost.aspx?PostID=299338&lt;/a&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					FBA code/tool - &lt;a href="http://www.codeplex.com/fba"&gt;http://www.codeplex.com/fba&lt;/a&gt; &lt;br /&gt;
				&lt;/li&gt;
				&lt;li&gt;
					FBA config code - &lt;br /&gt;
					&lt;a href="http://blogs.msdn.com/harsh/archive/2007/01/10/forms-based-authentication-in-moss.aspx"&gt;http://blogs.msdn.com/harsh/archive/2007/01/10/forms-based-authentication-in-moss.aspx&lt;/a&gt;
				&lt;/li&gt;
			&lt;/ul&gt;
		&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;

&lt;img src="http://jyhuh.com/blog/aggbug/40.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://jyhuh.com/blog/comments/40.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://jyhuh.com/blog/comments/commentRss/40.aspx</wfw:commentRss>
        <trackback:ping>http://jyhuh.com/blog/services/trackbacks/40.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Good SharePoint Server 2007 resources</title>
        <link rel="alternate" type="text/html" href="http://jyhuh.com/blog/archive/2008/09/08/sharepoint_resourcs.aspx" />
        <id>http://jyhuh.com/blog/archive/2008/09/08/sharepoint_resourcs.aspx</id>
        <published>2008-10-11T17:11:34Z</published>
        <updated>2008-10-11T17:11:34Z</updated>
        <content type="html">&lt;div&gt;&lt;a href="http://technet.microsoft.com/en-us/office/sharepointserver/bb736741.aspx"&gt;&lt;font size="4"&gt;Performance and Capacity Planning Resource Center for SharePoint Server 2007&lt;/font&gt;&lt;/a&gt; &lt;br /&gt;
This page contains resources to help you with performance and capacity planning for your SharePoint Server deployment—map your solution design to a farm size and set of hardware that supports your business goals. &lt;br /&gt;
It contains many technical articles organized By: &lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;Planning &lt;/li&gt;
    &lt;li&gt;Recommendations &lt;/li&gt;
    &lt;li&gt;Estimate performance based on test results &lt;/li&gt;
    &lt;li&gt;Demos &lt;/li&gt;
    &lt;li&gt;Tools from Microsoft &lt;/li&gt;
    &lt;li&gt;Tools and Papers from Partners and the Community&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;a href="http://technet.microsoft.com/en-us/office/sharepointserver/bb736746.aspx"&gt;&lt;font size="4"&gt;Best Practices Resource Center for SharePoint Server 2007&lt;/font&gt;&lt;/a&gt; &lt;br /&gt;
To avoid common pitfalls and keep your Office SharePoint Server 2007 environment available and performing well, follow these best practices based on real-world experience from Microsoft Consulting Services and the product team. &lt;br /&gt;
It contains best practices for: &lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;Operational Excellence &lt;/li&gt;
    &lt;li&gt;Team Collaboration Sites &lt;/li&gt;
    &lt;li&gt;Publishing Portals &lt;/li&gt;
    &lt;li&gt;Search &lt;/li&gt;
    &lt;li&gt;My Sites &lt;/li&gt;
    &lt;li&gt;Developing Custom Applications &lt;/li&gt;
    &lt;li&gt;Additional Resources&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;img src="http://jyhuh.com/blog/aggbug/39.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://jyhuh.com/blog/comments/39.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://jyhuh.com/blog/comments/commentRss/39.aspx</wfw:commentRss>
        <trackback:ping>http://jyhuh.com/blog/services/trackbacks/39.aspx</trackback:ping>
    </entry>
    <entry>
        <title>So you became a team lead? Here are books and podcast I recommend</title>
        <link rel="alternate" type="text/html" href="http://jyhuh.com/blog/archive/2008/09/07/team_lead_and_managers_books.aspx" />
        <id>http://jyhuh.com/blog/archive/2008/09/07/team_lead_and_managers_books.aspx</id>
        <published>2008-10-11T17:09:39Z</published>
        <updated>2008-10-11T17:09:39Z</updated>
        <content type="html">&lt;div&gt;Becoming a lead means becoming a manager. By definition, a manager is a person who makes things happen through others. A developer lead or team lead can make a project successful only if he can make his team members work effectively. I mentored many newbie leads who felt lost when they began to work as a lead. Here is a list of books that I recommend for young managers and leads: &lt;br /&gt;
&lt;br /&gt;
* &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/1576751740"&gt;Leadership and Self Deception: Getting Out of the Box by The Arbinger Institute&lt;/a&gt; - You need to read this book if you ever blamed others or if you feel you work harder than your team members. I think the definition of a bad manager is a manager in the box. &lt;br /&gt;
* &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0787960756"&gt;The Five Dysfunctions of a Team A Leadership Fable by Patrick M Lencioni&lt;/a&gt; - This is a best book which explains what the team is. A true team is based on trust and built on conflicts. &lt;br /&gt;
* &lt;a href="http://www.manager-tools.com/"&gt;Manager Tools&lt;/a&gt; - This is a podcast site. The podcast series guides you to become a good manager. I recommend to use an iTunes to download and listen to all podcasts. &lt;br /&gt;
&lt;br /&gt;
The above three items will be a good starting point, and I am sure you will discover other great books on the course of reading or listening to the above books and podcasts.&lt;/div&gt;&lt;img src="http://jyhuh.com/blog/aggbug/37.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://jyhuh.com/blog/comments/37.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://jyhuh.com/blog/comments/commentRss/37.aspx</wfw:commentRss>
        <trackback:ping>http://jyhuh.com/blog/services/trackbacks/37.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Microsoft and Cloud computing</title>
        <link rel="alternate" type="text/html" href="http://jyhuh.com/blog/archive/2008/09/07/cloud_computing.aspx" />
        <id>http://jyhuh.com/blog/archive/2008/09/07/cloud_computing.aspx</id>
        <published>2008-10-11T17:10:43Z</published>
        <updated>2008-10-11T17:10:43Z</updated>
        <content type="html">&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/CloudComputingNetworkDiagram.svg/200px-CloudComputingNetworkDiagram.svg.png"&gt;&lt;img style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; WIDTH: 200px; CURSOR: pointer" alt="" border="0" src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/CloudComputingNetworkDiagram.svg/200px-CloudComputingNetworkDiagram.svg.png" /&gt;&lt;/a&gt;&lt;font size="4"&gt;Microsoft and Cloud computing&lt;/font&gt; &lt;br /&gt;
&lt;br /&gt;
Cloud computing is here to stay. Amazon Elastic Compute Cloud (EC2), Google's recent release of Chrome and its internet-based applications, Salesforce.com, NetSuite, Apple's MobileMe, etc. are good examples of cloud computing services. Wikipedia has a &lt;a href="http://en.wikipedia.org/wiki/Cloud_computing"&gt;good article&lt;/a&gt; on Cloud computing. Microsoft is providing Cloud computing services and executing its own vision of Cloud computing, software plus service(S+S). Here are several examples of Microsoft's S+S: &lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;Red Dog: Microsoft is known to be working on a low-level "Cloud OS" that is code-named Red Dog.&lt;/li&gt;
    &lt;li&gt;Zurich: At the highest level, Zurich is Microsoft’s Software+Services platform.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://livelabs.com/volta/"&gt;Microsoft Volta&lt;/a&gt; : In a nutshell, Volta is Microsoft's version of Google Web Toolkit(GWT). GWT uses Java to generate JavaScript. Volta uses .Net language such as C# to generate JavaScript. As of today, Microsoft volta is technology preview (pre-beta). &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://crm.dynamics.com/"&gt;Microsoft Dynamics CRM Online&lt;/a&gt;: Microsoft offers a CRM hosting service through Microsoft Dynamics CRM Online. &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://skydrive.live.com/"&gt;Microsoft SkyDrive&lt;/a&gt; - This is a storage in the Clouds. Once you sign up through Windows Live, you get 5GB of free storage.&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.popfly.com/"&gt;Microsoft Popfly&lt;/a&gt; - It is a Microsoft mash-up tool similar to Yahoo's Pipes.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;font size="4"&gt;Useful links&lt;/font&gt; &lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://blogs.zdnet.com/microsoft/?p=1536"&gt;Piercing together Microsoft's cloud-computing vision&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.liveside.net/main/archive/2008/04/09/red-dog-ray-ozzie-s-answer-to-the-google-app-engine.aspx"&gt;Red Dog: Ray Ozzie's answer to the Google App Engine?&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.amazon.com/b?ie=UTF8&amp;amp;node=201590011"&gt;Amazon EC2&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.mesh.com/"&gt;Microsoft Live Mesh&lt;/a&gt; &lt;br /&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;img src="http://jyhuh.com/blog/aggbug/38.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://jyhuh.com/blog/comments/38.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://jyhuh.com/blog/comments/commentRss/38.aspx</wfw:commentRss>
        <trackback:ping>http://jyhuh.com/blog/services/trackbacks/38.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Sample code acceptance checklist for SharePoint from Microsoft</title>
        <link rel="alternate" type="text/html" href="http://jyhuh.com/blog/archive/2008/08/31/sample_code_acceptance_checklist_sharepoint.aspx" />
        <id>http://jyhuh.com/blog/archive/2008/08/31/sample_code_acceptance_checklist_sharepoint.aspx</id>
        <published>2008-10-11T17:08:42Z</published>
        <updated>2008-10-11T17:08:42Z</updated>
        <content type="html">Microsoft recently released the following article: &lt;a id="cz03" title="http://technet.microsoft.com/en-us/library/cc707802.aspx#Section2" href="http://technet.microsoft.com/en-us/library/cc707802.aspx#Section2"&gt;http://technet.microsoft.com/en-us/library/cc707802.aspx#Section2&lt;/a&gt; It is a sample code acceptance checklist. I think it is a good checklist to start with for assuring the quality of your team's code. Just like any guidance and checklist, you will need to change the checklist by adding or removing checklist items.&lt;img src="http://jyhuh.com/blog/aggbug/36.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://jyhuh.com/blog/comments/36.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://jyhuh.com/blog/comments/commentRss/36.aspx</wfw:commentRss>
        <trackback:ping>http://jyhuh.com/blog/services/trackbacks/36.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Useful SharePoint Utility methods</title>
        <link rel="alternate" type="text/html" href="http://jyhuh.com/blog/archive/2008/04/27/Useful-SharePoint-Utility-methods.aspx" />
        <id>http://jyhuh.com/blog/archive/2008/04/27/Useful-SharePoint-Utility-methods.aspx</id>
        <published>2008-04-27T23:08:00Z</published>
        <updated>2008-04-27T16:19:52Z</updated>
        <content type="html">&lt;p id="u:ls1"&gt;Microsoft.SharePoint.Utilities namespace [1] contains many useful classes such as SPUtility, SPEncode, SPUrlUtility, etc. As you can imagine, these classes contain many useful utility methods which can save developers lots of time as well as many line of code. In this article, I will introduce two methods in the SPUtility class as a starter. Until I update this article later, please take a look at the SharePoint SDK to see what kind of utility classes and methods the Microsoft.SharePoint.Utilities namespace contains.&lt;/p&gt;
&lt;p id="iuap0"&gt; &lt;/p&gt;
&lt;h1 id="m8au0"&gt;SPUtility Class&lt;/h1&gt;
&lt;p id="m8au1"&gt;&lt;strong id="wx182"&gt;Namespace:&lt;/strong&gt; Microsoft.SharePoint.Utilities&lt;br id="wx183" /&gt;
&lt;strong id="wx184"&gt;Assembly:&lt;/strong&gt; Microsoft.SharePoint (in microsoft.sharepoint.dll)&lt;/p&gt;
&lt;p id="p69b1"&gt; &lt;/p&gt;
&lt;p id="p69b2"&gt; &lt;/p&gt;
&lt;h2 id="p69b3"&gt;SPUtility.CreateISO8601DateTimeFromSystemDateTime&lt;/h2&gt;
&lt;h3 id="rzht0"&gt;Description&lt;/h3&gt;
&lt;p id="rzht1"&gt;Converts a system DateTime value to ISO8601 DateTime format (yyyy-mm-ddThh:mm:ssZ). &lt;/p&gt;
&lt;p id="i08i0"&gt; &lt;/p&gt;
&lt;h3 id="rzht2"&gt;User Scenario&lt;/h3&gt;
&lt;p id="wa2q2"&gt;When you need to use a CAML query against a field with DateTime type, you will need to format a date to be ISO 8601 compliant. SharePoint provides a SPUtility.CreateISO8601DateTimeFromSystemDateTime method which converts a regular System.DateTime object to a datetime string which follows the ISO 8601 format.&lt;/p&gt;
&lt;p id="b3t40"&gt; &lt;/p&gt;
&lt;h3 id="g7:o0"&gt;C# Code Sample&lt;/h3&gt;
&lt;p id="ts4c0"&gt;The following code will return all past due items.&lt;/p&gt;
&lt;p id="bm9x0"&gt; &lt;/p&gt;
&lt;blockquote id="h5lz"&gt;
&lt;p id="d_jh0" goog_docs_charindex="1233"&gt;SPWeb web = SPContext.Current.Web;&lt;br /&gt;
SPList list = web.Lists["Tasks"];&lt;/p&gt;
&lt;p id="u8ru0" goog_docs_charindex="1304"&gt;DateTime nextWeek = DateTime.Today.AddDays(-1);&lt;/p&gt;
&lt;p goog_docs_charindex="1352"&gt;string nextWeekDate = SPUtility.CreateISO8601DateTimeFromSystemDateTime(nextWeek);&lt;br id="ts4c5" goog_docs_charindex="1435" /&gt;
string querystring = String.Format("&amp;lt;Where&amp;gt;&amp;lt;Lt&amp;gt;&amp;lt;FieldRef Name=\"DueDate\"/&amp;gt;&amp;lt;Value Type=\"DateTime\"&amp;gt;{0}&amp;lt;/Value&amp;gt;&amp;lt;/Lt&amp;gt;&amp;lt;/Where&amp;gt;", nextWeekDate);&lt;br id="ts4c7" goog_docs_charindex="1579" /&gt;
SPQuery query = new SPQuery();&lt;br id="ts4c8" goog_docs_charindex="1610" /&gt;
query.Query = querystring;&lt;br id="ts4c9" goog_docs_charindex="1637" /&gt;
SPListItemCollections items = list.GetItems(query);&lt;/p&gt;
&lt;p goog_docs_charindex="1352"&gt; &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id="d_jh0"&gt; &lt;/p&gt;
&lt;p id="yl3g0"&gt; &lt;/p&gt;
&lt;h2 id="yl3g1"&gt;SPUtility.SendEmail&lt;/h2&gt;
&lt;h3 id="gs460"&gt;Description&lt;/h3&gt;
&lt;p id="rzht1"&gt;Sends an email. The key benefit of using this method instead of using the System.Web.Mail.SmtpMail.SendMail the less maintenance -- Since this API uses an outgoing email setting which is configured on the SharePoint central admin, unlike SmtpMail.SendMail, you don't need to store information of SMTP server in a web.config file. The downside of the SPUtility.SendEmail is that it does not support file attachments to emails. If you need a file attachment functionality, you will need to use the SmtpMail.SendMail method. &lt;/p&gt;
&lt;h3 id="rzht2"&gt;User Scenario&lt;/h3&gt;
&lt;p id="wa2q2"&gt;This method can be used in a variety of scenarios. You may use this method to notify a user by email when a user changes a user profile in an extranet SharePoint site. You may use this method inside a custom SharePoint TimerJob to email users friendly reminders when their assigned tasks are due, etc. &lt;/p&gt;
&lt;h3 id="g7:o0"&gt;C# Code Sample&lt;/h3&gt;
&lt;blockquote id="of69"&gt;
&lt;p id="gs461"&gt;SPWeb web = SPContext.Current.Web;&lt;/p&gt;
&lt;p id="uy.q0"&gt;string to = "[recipient's email address]"; &lt;/p&gt;
&lt;p id="fp620"&gt;string subject = "Test Message"; &lt;/p&gt;
&lt;p id="gt3h0"&gt;string body = "Message sent from SharePoint"; &lt;/p&gt;
&lt;p id="r37n0"&gt;bool appendHtmlTag = true;&lt;/p&gt;
&lt;p id="r37n1"&gt;bool encodeHtml = true;&lt;/p&gt;
&lt;p id="gt3h1"&gt;bool success = SPUtility.SendEmail(web, appendHtmlTag, encodeHtml, to, subject, body);&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p id="gs461"&gt; &lt;/p&gt;
&lt;p id="gs463"&gt;[1] - &lt;a id="v-0_0" href="http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.utilities.aspx"&gt;http://msdn2.microsoft.com/en-us/library/microsoft.sharepoint.utilities.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://jyhuh.com/blog/aggbug/34.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://jyhuh.com/blog/comments/34.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://jyhuh.com/blog/comments/commentRss/34.aspx</wfw:commentRss>
        <trackback:ping>http://jyhuh.com/blog/services/trackbacks/34.aspx</trackback:ping>
    </entry>
    <entry>
        <title>General guideline for troubleshooting SharePoint issues</title>
        <link rel="alternate" type="text/html" href="http://jyhuh.com/blog/archive/2008/04/27/troubleshooting-SharePoint.aspx" />
        <id>http://jyhuh.com/blog/archive/2008/04/27/troubleshooting-SharePoint.aspx</id>
        <published>2008-04-27T17:59:36Z</published>
        <updated>2008-04-27T11:07:36Z</updated>
        <content type="html">&lt;p&gt;&lt;font size="3"&gt;&lt;span style="font-family: Arial;"&gt;This is the list of steps to follow for troubleshooting general SharePoint issues. &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;span style="font-family: Arial;"&gt; 1. Turn on the debug flag from SharePoint web.config&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;span style="font-family: Arial;"&gt;     Note: Enabling debugging is not recommended on a production environment. &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;div style="margin-left: 40px; font-family: Arial;"&gt;
&lt;p&gt;&lt;font size="3"&gt;a. Locate the SharePoint web.config file which is typically located under one of the virtual directories in C:\Inetpub\wwwroot\wss\VirtualDirectories.&lt;br /&gt;
b. Make a backup of the web.config just in case.&lt;br /&gt;
c. Open the SharePoint web.config using a Visual Studio or a text editor such as notepad.&lt;br /&gt;
d. Find “CallStack” &lt;br /&gt;
e. Change the value of CallStack to “true”&lt;br /&gt;
f. Find “CustomErrors”&lt;br /&gt;
g. Change the value of CustomErrors mode to ”off” &lt;br /&gt;
h. Save the web.config.&lt;br /&gt;
&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;span style="font-family: Arial;"&gt; 2. Reproduce an issue you're having i.e. by refreshing the broken web page&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;span style="font-family: Arial;"&gt; 3. Examine the error from EventLog. In most cases, you will find no useful information from EventLog since SharePoint does a poor job leaving a trace on the EventLog.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;span style="font-family: Arial;"&gt; 4. Go to SharePoint logs folder (c:\Program Files\Common Files\Microsoft Shared\web server extensions\12\Logs). SharePoint dumps all logs in this folder, and so you should be able to find clues by examining logs in this folder.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;div style="margin-left: 40px; font-family: Arial;"&gt;
&lt;p&gt;&lt;font size="3"&gt;a. Sort items by Date Modified&lt;br /&gt;
b. Open the latest log file using a notepad or other text editors.&lt;br /&gt;
c. Scroll down to the bottom&lt;br /&gt;
d. Examine the latest log&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;span style="font-family: Arial;"&gt; 5. Analyze error messages found from Step 2, 3 and 4.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;span style="font-family: Arial;"&gt; 6. Investigate issue for 10 minutes&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;div style="margin-left: 40px; font-family: Arial;"&gt;
&lt;p&gt;&lt;font size="3"&gt;a. Examine the system account used for an application pool of a SharePoint application. Does the account have proper permissions?&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;span style="font-family: Arial;"&gt; 7. If you’re stuck for more than 10 minutes, stop what you’re doing.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;span style="font-family: Arial;"&gt; 8. Search for the clues from Internet -- Many times, we forget how useful Internet is and that somebody else typically had the same problem before.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;span style="font-family: Arial;"&gt; 9. If no clues have been found, ask for help.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;div style="margin-left: 40px; font-family: Arial;"&gt;
&lt;p&gt;&lt;font size="3"&gt;a. Describe detailed steps how to reproduce the issues&lt;br /&gt;
b. Ask colleagues or reach out communities such as the MSDN SharePoint Forums [1]&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;span style="font-family: Arial;"&gt; 10. Iterate the step 1 to step 5 until an issue is resolved.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3"&gt;&lt;span style="font-family: Arial;"&gt; [1] - http://forums.microsoft.com/MSDN/default.aspx?ForumGroupID=328&amp;amp;SiteID=1&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://jyhuh.com/blog/aggbug/33.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://jyhuh.com/blog/comments/33.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://jyhuh.com/blog/comments/commentRss/33.aspx</wfw:commentRss>
        <trackback:ping>http://jyhuh.com/blog/services/trackbacks/33.aspx</trackback:ping>
    </entry>
    <entry>
        <title>Programmatically creating a Gannt view from SharePoint</title>
        <link rel="alternate" type="text/html" href="http://jyhuh.com/blog/archive/2008/04/23/Programmatically_creating_Gannt_view.aspx" />
        <id>http://jyhuh.com/blog/archive/2008/04/23/Programmatically_creating_Gannt_view.aspx</id>
        <published>2008-04-23T12:25:17Z</published>
        <updated>2008-04-23T05:32:21Z</updated>
        <content type="html">&lt;p id="roix"&gt;I came across couple of questions from Internet about how to programmatically create a Gannt view on a custom SharePoint list. So, here is an answer to these questions.&lt;br id="onwj" /&gt;
&lt;/p&gt;
&lt;br id="johq" /&gt;
&lt;br id="mwe:" /&gt;
&lt;p id="roix"&gt;1. First of all, create a custom list from a SharePoint UI.&lt;/p&gt;
&lt;p id="roix"&gt;2. On the menu of the newly created custom list, click Settings-&amp;gt;Create Column.&lt;/p&gt;
&lt;p id="roix"&gt;&lt;font id="e0i9"&gt;&lt;font size="2" id="ffie"&gt;3. Create a column for Start Date with "Date and Time" type with Date Only as a format (see the picture below).&lt;/font&gt;&lt;/font&gt; The column name doesn't need to be exactly same. &lt;br id="wnqd" /&gt;
&lt;/p&gt;
&lt;p id="roix"&gt; &lt;/p&gt;
&lt;font size="2" id="ffie"&gt;
&lt;div style="padding: 1em 0px; text-align: left;" id="lcgn"&gt;&lt;img src="http://docs.google.com/File?id=dhvb8hj_59gwfbpfgg_b" id="difi" alt="" /&gt;&lt;br id="clih" /&gt;
&lt;br id="esme" /&gt;
4. &lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;span id="mcqf"&gt;Create a column for End Date with "Date and Time" type with Date Olnly as a format.&lt;br id="ylck" /&gt;
5.&lt;/span&gt;&lt;/span&gt;&lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;span id="ey-t"&gt;Create a column for PercentComplete with "Number" type. Set Min to 0 and Max to 100. Set number of decimal place to 0, and check the "Show as percentage (for example, 50%)" option. See the picture below.&lt;/span&gt;&lt;/span&gt;&lt;span id="_ctl0_MainContent_PostFlatView"&gt;&lt;span id="mcqf"&gt;&lt;br id="onfe" /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br id="ygk2" /&gt;
&lt;br id="kd10" /&gt;
&lt;/div&gt;
&lt;/font&gt;&lt;font size="2" id="mcpj"&gt;
&lt;div style="padding: 1em 0px; text-align: left;" id="x39."&gt;&lt;img src="http://docs.google.com/File?id=dhvb8hj_60gdc28pt6_b" id="cbug" alt="" /&gt;&lt;/div&gt;
&lt;/font&gt;
&lt;p id="lu15"&gt;&lt;br id="p413" /&gt;
&lt;/p&gt;
&lt;p id="lu15"&gt;&lt;font size="2" id="r284"&gt;Now, run the following code to create a Gannt view.&lt;br id="zdsk" /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p id="lu15"&gt;&lt;font size="2" id="r284"&gt;&lt;br id="acut" /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p id="lu15"&gt;  &lt;/p&gt;
&lt;p id="s-9l"&gt; &lt;/p&gt;
&lt;table width="90%" cellspacing="1" cellpadding="1" border="2" bgcolor="#f5f5dc" summary="" id="uhpk"&gt;
    &lt;tbody id="eh7o"&gt;
        &lt;tr id="gwx2" class="highlightAltNaN highlightAltNaN highlightAltNaN highlightAltNaN highlightAltNaN highlightAltNaN highlightAltNaN highlightAltNaN highlightAlt"&gt;
            &lt;td id="wrkm"&gt;
            &lt;pre id="h7ga"&gt;&lt;font size="2" id="j4uh"&gt;using System;&lt;br id="oh-r" /&gt;using System.Text;&lt;br id="onen" /&gt;using Microsoft.SharePoint;&lt;br id="m2tp" /&gt;using Microsoft.SharePoint.WebControls;&lt;/font&gt;&lt;/pre&gt;
            &lt;pre id="arcl"&gt;&lt;font size="2" id="r49w"&gt;namespace ConsoleApplication1&lt;br id="a1bx" /&gt;{&lt;br id="yhgn" /&gt; class Program&lt;br id="o:q2" /&gt; {&lt;br id="ptc2" /&gt;    static void Main(string[] args)&lt;br id="kjx9" /&gt;    {&lt;br id="ez5j" /&gt;        using(SPSite site = new SPSite("[site url]"))&lt;br id="ycuk" /&gt;        using (SPWeb web = site.OpenWeb())&lt;br id="tr2h" /&gt;        {&lt;br id="e1ol" /&gt;          SPList list = web.Lists["CustomList"];&lt;br id="ek9y" /&gt;          SPViewCollection views = list.Views;&lt;br id="tf2a" /&gt;          System.Collections.Specialized.StringCollection viewFields = &lt;br id="oo.." /&gt;		new System.Collections.Specialized.StringCollection();&lt;/font&gt;&lt;/pre&gt;
            &lt;pre id="b2v5"&gt;&lt;font size="2" id="m757"&gt;          viewFields.Add("Title");&lt;/font&gt;&lt;/pre&gt;
            &lt;pre id="vomc"&gt;&lt;font size="2" id="k9no"&gt;          SPView view = views.Add("Gannt Test", &lt;br id="e_eg" /&gt;		viewFields, String.Empty, 100, true, false, &lt;br id="h7ds" /&gt;		SPViewCollection.SPViewType.Gantt, false);&lt;br id="gfed" /&gt;         view.ViewData = @"&amp;lt;FieldRef Name=""StartDate"" Type=""GanttStartDate"" /&amp;gt;&lt;br /&gt;		&amp;lt;FieldRef Name=""DueDate"" Type=""GanttEndDate"" /&amp;gt;&lt;br /&gt;		&amp;lt;FieldRef Name=""Title"" Type=""GanttTitle"" /&amp;gt;&lt;br /&gt;		&amp;lt;FieldRef Name=""PercentComplete"" &lt;br /&gt;		Type=""GanttPercentComplete"" /&amp;gt;";&lt;fieldref ganttstartdate="" type="" startdate="" name=""&gt;&lt;fieldref ganttenddate="" type="" duedate="" name=""&gt;&lt;fieldref gantttitle="" type="" title="" name=""&gt;&lt;fieldref percentcomplete="" name=""&gt;&lt;br id="p-0m" /&gt;               &lt;br id="jadd" /&gt;          view.Update();&lt;br id="kepc" /&gt;        }&lt;br id="rls1" /&gt;    }&lt;br id="qy3q" /&gt; }&lt;br id="zxe7" /&gt;}&lt;br id="j_q1" /&gt;&lt;/fieldref&gt;&lt;/fieldref&gt;&lt;/fieldref&gt;&lt;/fieldref&gt;&lt;/font&gt;&lt;/pre&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p id="xthg"&gt; &lt;/p&gt;
&lt;p dir="ltr" id="s:sf"&gt;&lt;font size="2" id="yst0"&gt;The key point on the code is that you need to use GanttStartDate, GanntEndDate, GanntDueDate and GanntPercentComplete as types of FieldRefs for ViewData.&lt;/font&gt;&lt;/p&gt;
&lt;br id="x1mc" /&gt;&lt;img src="http://jyhuh.com/blog/aggbug/31.aspx" width="1" height="1" /&gt;</content>
        <wfw:comment>http://jyhuh.com/blog/comments/31.aspx</wfw:comment>
        <slash:comments>0</slash:comments>
        <wfw:commentRss>http://jyhuh.com/blog/comments/commentRss/31.aspx</wfw:commentRss>
        <trackback:ping>http://jyhuh.com/blog/services/trackbacks/31.aspx</trackback:ping>
    </entry>
</feed>