vendredi 21 novembre 2008

[Sharepoint] Refaire le contrôle utilisateur Welcome.ascx

Dernièrement, j’ai eu besoin de faire un userControl du style de Welcome.ascx mais personnalisé.

Un de mes besoins était d’afficher le nom prénom de la personne connectée et pas le “Bienvenue”. Or, en authentification Forms, je ne voyais que le “Bienvenue login”.

Un petit coup de Refelctor sur la dll Sharepoint m’a permis de voir qu’il y avait plusieurs options (PostCacheSubstitutionTextType) pour cette affichage.

image

Par défaut, l’option utilisée est “WelcomeUser”, voici les autres options :

  • Invalid

  • UserEmail

  • UserId

  • UserLoginName

  • UserName

  • WebTitle

  • WelcomeUser


Le développement

Pour faire simple, je suis repartie du code de Welcome.ascx, et ai créé Welcome2.ascx.

Au chargement du contrôle j’ai rajouté ces quelques lignes qui me permettent de modifier le type de l’affichage.

[sourcecode language='c-sharp']
PostCacheSubstitutionText child = this.ExplicitLogout.MenuControl.Controls[0] as PostCacheSubstitutionText;
           if (child.TextType == PostCacheSubstitutionTextType.WelcomeUser)
           {
               this.ExplicitLogout.MenuControl.Controls.Remove(child);
               child.TextType = PostCacheSubstitutionTextType.UserName;
               this.ExplicitLogout.MenuControl.UseShortId = true;
               this.ExplicitLogout.MenuControl.Controls.Add(child);

           }
[/sourcecode]

A partir de la, rien ne m’empêcher de créer mon propre userControl :

image

Il ne suffit plus que de créer une feature/solution pour le déploiement de ce contrôle et de l’intégrer dans notre masterpage personnalisée.

 

Ce n’est certainement pas la solution la plus propre, mais la plus simple dans mon cas car elle ne m’implique que très peu de développement.

Aucun commentaire:

Enregistrer un commentaire