Bonjour
Tout d'abord il existe une option dans MOSS via l'annuaire de site qui permet à des personnes non administrateur de créer des sites (self service), mais si vous n'avez que WSS, c'est raté.
Pour votre bout de code et surtout le lancement en mode privilèges élevés, vous ne devez pas utiliser le contexte courant (SPContext).
Dans votre méthode CreateSite, ajoutez un RunWithElevatedPrivileges et dedans remettez votre code avec cette différence :
Code Snippet
// rouvrez une collection avec le contexte avec privilèges élevés
using (SPSite site = new SPSite(SPContext.Current.Site.ID)
{
SPWeb webPortail = site.AllWebs[...];
... (add & co)
webPortail.Dispose();
}
Le code ci-dessus a été écrit à main levée, donc attention aux fautes de frappes.
A+