I did my first webpart page following the article Building Web Parts, Part 2 by Wei-Meng Lee
I got this 'The specified display mode is currently disabled on this page. Make sure personalization is enabled for the current user.' error when I try to switch to 'Design Mode' with my own SqlPersonalizationProvider. I think it's because the “personalization” has to be done under a registered user profile, so I logon as a registere user first before try this webpart part in design mode. Everything works as expected now.
I'm using my own SQL profile provider here is the config file:
<anonymousIdentification
enabled="true"
cookieName=".ASPXANONYMOUS"
cookieTimeout="43200"
cookiePath="/"
cookieRequireSSL="false"
cookieSlidingExpiration="true"
cookieProtection="All"
cookieless="UseCookies"/>
<profile defaultProvider="mySqlProfileProvider" automaticSaveEnabled="true" enabled="true">
<providers>
<clear />
<add name="mySqlProfileProvider"
type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="TelematicallLocalSqlServer"
applicationName="mynet"
/>
</providers>
<properties>
<add name="HasMigrated" type="System.Boolean" defaultValue="false"/>
<add name="Culture" type="System.String" allowAnonymous="true" defaultValue="en-US"/>
<add name="Theme" type="System.String" allowAnonymous="true" defaultValue="mynet"/>
<add name="LastVisitPage" type="System.String" allowAnonymous="true" defaultValue=""/>
<group name="PersonInfo">
<add name="PalList" type="System.Collections.ArrayList"/>
<add name="PersonId" type="System.Int32" defaultValue="" readOnly="false"/>
<add name="FullName" type="System.String" defaultValue="" />
<add name="AddressId" type="System.Int32" defaultValue="" readOnly="false"/>
</group>
</properties>
</profile>
<webParts>
<personalization
defaultProvider="mySqlPersonalizationProvider">
<providers>
<add name="mySqlPersonalizationProvider"
type="System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider"
connectionStringName="TelematicallLocalSqlServer"
applicationName="mynet" />
</providers>
<authorization>
<deny users="*" verbs="enterSharedScope" />
<allow users="?" verbs="modifyState" />
</authorization>
</personalization>
</webParts>