Re: How to add webpart in forms authentication mode
 
  WebPartManager.AddWebPart() adds a dynamic WebPart to the personalization data for the current user, so it cannot be called if 
personalization is disabled.

When personalization is disabled, you can only add static WebParts to the WebPartManger.  There are 3 ways to add a static WebPart 
to the WebPartManager at runtime:

1.  Set the WebPartZone.ZoneTemplate property to a custom class that implements ITemplate.  Implement the runtime logic to decide 
which WebParts to add in the ITemplate.InstantiateIn() method.

2. Derive from WebPartZoneBase, and override GetInitialWebParts().

3. Derive from WebPartManager, and call WebPartManagerInternals.AddWebPart() to directly add a static WebPart to the WebPartManager.