Fermer

mai 9, 2021

Gérer les paramètres du registre de l'utilisateur après la connexion


Sitecore Registry est un endroit où Sitecore stocke les données utilisateur (c'est-à-dire les données relatives aux préférences et aux choix d'édition de l'utilisateur). Dans certains cas, la définition d'un registre d'utilisateurs sur une valeur par défaut chaque fois que l'utilisateur se connecte au CM éliminerait la confusion et le stress. Par exemple, si vous désactivez la case à cocher valeurs brutes chaque fois que l’utilisateur se connecte à Sitecore, il n’est pas obligé de déterminer comment la réinitialiser. Si c'est quelque chose que vous savez qu'un client voudrait, alors ce message est pour vous!

Qu'est-ce que le registre d'utilisateurs?

En savoir plus ici

Quels paramètres de registre d'utilisateurs

 Sitecore - Comprendre les approches de développement: un Outlook Sitecore

Voici la liste des clés de registre utilisateur et des valeurs que le code modifiera chaque fois que l'utilisateur se connectera à Sitecore. Faites très attention d'attribuer la valeur correcte à la clé afin d'éviter les erreurs.

  • Afficher les valeurs brutes (en le définissant sur false)
    • /Current_User/UserOptions.ContentEditor.ShowRawValues ​​
    • true = afficher les valeurs brutes dans l'éditeur de contenu
    • false = ne pas afficher les valeurs brutes dans l'éditeur de contenu
  • Afficher les éléments masqués (en le définissant sur true)
    • /Current_User/UserOptions.View.ShowHiddenItems
    • true = afficher les éléments masqués dans l'éditeur de contenu
    • false = ne pas afficher les éléments masqués dans l'éditeur de contenu
  • Afficher les éléments du bucket (en le définissant sur true)
    • /Current_User/UserOptions.View.ShowBucketItems
    • true = afficher les éléments du bucket dans l'éditeur de contenu
    • false = ne pas afficher les éléments de compartiment dans l'éditeur de contenu
  • Afficher les informations rapides (en le définissant sur true)
    • /Current_User/UserOptions.ContentEditor.ShowQuickInfo
    • true = afficher la zone d'informations rapides dans l'éditeur de contenu
    • false = ne pas afficher Zone d'informations rapides dans l'éditeur de contenu
  • Afficher l'arborescence entière (en le définissant sur true)
    • /Current_User/UserOptions.View.ShowEntireTree
    • true = afficher l'arborescence entière dans l'éditeur de contenu
    • false = ne pas afficher la totalité Arborescence dans l'éditeur de contenu
  • Smart Publish (en le définissant sur true)
    • / Current_User / Publish / SmartPublish
    • true = sélectionnez Smart Publish
    • false = désélectionnez Smart Publish
  • Modifier toutes les versions (l'activer)
    • / Current_User / Page Editor / Show / EditAllVersions
    • on = définir la mise en page sur Shared in Experience Editor
    • off = définir la mise en page sur Final in Experience Editor
  • Ouvrir la fenêtre des propriétés de rendu après l'avoir ajoutée dans l'Editeur d'expérience (en la définissant sur true)
    • / Current_User / SelectRendering / IsOpenPropertiesChecked
    • true = ouvrir la fenêtre
    • false = ne pas ouvrir la fenêtre
  • Augmenter / Diminuer la taille de page de la boîte de travail (en la définissant sur 20)
    • / Utilisateur_actuel / Boîte de travail / Taille de la page
    • any number = number décidera du nombre d'éléments dans la boîte de travail qui seront affichés par page

Où est le code et comment fonctionne-t-il?

Le code a été testé dans Sitecore 9.1.1. Le code et le fichier de correctif ci-dessous créeront un nouveau processeur sous le pipeline «owin.cookieAuthentication.signedIn».

  • Récupération des données utilisateur par contexte ou par identité de revendication
  • L'utilisateur doit être authentifié pour que le paramètre soit appliqué et enregistré dans le profil utilisateur
  • SiteContextSwitcher est utilisé pour faire passer le contexte du site de «login» à «shell», ce qui permet d'accéder au registre de site correct
  • Assurez-vous d'ajouter la dll suivante à votre projet
    • Sitecore.Owin.Authentication.dll
 utilisant Sitecore;
en utilisant Sitecore.Caching;
en utilisant Sitecore.Sites;
en utilisant System.Collections.Specialized;
en utilisant Sitecore.Security.Accounts;
en utilisant Sitecore.Diagnostics;
using Sitecore.Owin.Authentication.Pipelines.CookieAuthentication.SignedIn;
en utilisant System.Security.Claims;

espace de noms MySite.Custom.Pipelines.CookieAuthentication.SignedIn
{
    classe publique SetUserRegistry: SignedInProcessor
    {
        processus public override void (Args SignedInArgs)
        {
            Assert.ArgumentNotNull (args, "args");

            Utilisateur utilisateur = GetUser (args);

            // Assurez-vous que l'utilisateur a été authentifié sinon une erreur se produira lors de l'enregistrement du profil
            if (user! = null && user.IsAuthenticated)
            {
                SiteContext shellSite = SiteContext.GetSite ("shell");
                chaîne registryKey, registryValue, cacheKey;

                pour (int i = 0; i <registryUpdates.Count; i ++)
                {
                    // Récupère la clé de registre et la valeur
                    RegistryKey = registryUpdates.GetKey (i);
                    RegistryValue = registryUpdates.Get (i);

                    // Nettoie la clé de registre et remplace Current_User par le nom de l'utilisateur connecté
                    RegistryKey = StringUtil.Left (registryKey, 250);
                    registryKey = registryKey.Replace ("Current_User", user.Name.ToLowerInvariant ());

                    // Enregistrer la clé de registre dans le profil utilisateur
                    user.Profile [registryKey] = valeur de registre;
                    user.Profile.Save ();

                    // Clé pour accéder au cache du registre
                    cacheKey = "registry_" + registryKey;

                    // Le cache du registre est défini par site
                    // À ce stade, le site est connecté, nous devons donc basculer le site en shell
                    // afin de mettre à jour le registre de site correct
                    en utilisant (new SiteContextSwitcher (shellSite))
                    {
                        RegistryCache registryCache = CacheManager.GetRegistryCache (Context.Site);
                        if (registryCache! = null)
                            registryCache.SetValue (cacheKey, registryValue);
                    }
                }
            }
        }

        // Cela renverra l'utilisateur en fonction du contexte ou de l'identité
        Utilisateur public GetUser (Arguments SignedInArgs)
        {
            Utilisateur tempUser = null;

            // Récupère l'utilisateur du contexte
            if (Context.User! = null)
                return Context.User;

            // Récupère l'utilisateur à partir de l'identité des revendications
            ClaimsIdentity identity = args.Context.Identity;
            string userName = (identité! = null)? identité.Nom: null;
            if (! string.IsNullOrEmpty (userName))
            {
                tempUser = User.FromName (userName, vrai);
            }

            return tempUser;
        }

        // C'est ici que vous devez entrer tous les éléments du registre d'utilisateurs que vous souhaitez modifier lorsqu'un utilisateur se connecte au site
        NameValueCollection registryUpdates = nouveau NameValueCollection ()
        {
            {"/Current_User/UserOptions.ContentEditor.ShowRawValues", "false"},
            {"/Current_User/UserOptions.View.ShowHiddenItems", "true"},
            {"/Current_User/UserOptions.View.ShowBucketItems", "true"},
            {"/Current_User/UserOptions.ContentEditor.ShowQuickInfo", "true"},
            {"/Current_User/UserOptions.View.ShowEntireTree", "true"},
            {"/ Current_User / Publish / SmartPublish", "true"},
            {"/ Current_User / Page Editor / Show / EditAllVersions", "on"},
            {"/ Current_User / SelectRendering / IsOpenPropertiesChecked", "true"},
            {"/ Utilisateur_actuel / Boîte de travail / Taille de la page", "20"}
        };
    }
}

 

  
    
      
        
      
    
  
 

À propos de l'auteur

CJ est devenu développeur Sitecore certifié en 2015. Dans ses temps libres, il aime jouer aux jeux vidéo, au basket-ball et au racquetball.

Plus de cet auteur






Source link