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.
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 :
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.