Définir le partage externe sur des collections de sites dans Office 365

Vous pouvez contrôler les paramètres de partage externe sur une collection de sites SharePoint dans Office 365 pour permettre à des utilisateurs externes (utilisateurs qui n’ont pas de compte d’organisation dans votre abonnement Office 365) d’accéder à votre collection de sites.

S’applique à : compléments pour SharePoint | SharePoint Online | Office 365

L’exemple de code Core.ExternalSharing vous montre comment contrôler vos paramètres de partage externe sur une collection de sites SharePoint. Utiliser cette solution pour :

  • Le contrôle des paramètres de partage externe pendant votre processus de mise en service de site.

  • Préparez votre collection de sites pour le partage avec des utilisateurs externes.

Remarque

Les paramètres de partage externe sont uniquement disponibles dans Office 365.

Avant de commencer

Pour commencer, téléchargez l’exemple de complément Core.ExternalSharing à partir du projet Office 365 Modèles et pratiques de développeur sur GitHub.

Utiliser l’application Core.ExternalSharing

Vérifiez que votre abonnement Office 365 autorise le partage externe. Pour ce faire :

  1. Ouvrez votre centre d’administration Office 365.

  2. Dans le menu de navigation gauche, sélectionnez SharePoint.

  3. Dans le menu de navigation de gauche, choisissez Partage.

  4. Dans Partage en dehors de votre organization, vérifiez que l’option Autoriser les utilisateurs à inviter et à partager avec des utilisateurs externes authentifiés est Activée.

Vérifiez les paramètres de votre site externes sur votre collection de sites SharePoint. Pour ce faire :

  1. Ouvrez votre centre d’administration Office 365.

  2. Dans le menu de navigation de gauche, choisissez SharePoint pour ouvrir votre Centre d’administration SharePoint.

  3. Dans la liste de collection de Site, sélectionnez la case à cocher en regard de l’URL de collection de sites. auprès de laquelle vous voulez vérifier vos paramètres de partage externe.

  4. Dans le ruban, choisissez Partage.

  5. Passez en revue vos paramètres de partage externe dans la boîte de dialogue de partage . Après avoir exécuté l’exemple de code, revenir à la boîte de dialogue de partage pour vérifier que vos paramètres de partage externe ont changé.

Lorsque vous exécutez cet exemple de code, Main dans Program.cs effectue les tâches suivantes :

  • Récupère l’URL du Centre d’administration SharePoint.

  • Obtient l’URL de collection de sites du site pour configurer les paramètres de partage externe.

  • Récupère vos informations d’identification d’administrateur Office 365.

  • Appelle GetInputSharing, qui invite l’utilisateur à choisir un paramètre de partage externe ( SharingCapabilities) à appliquer à la collection de sites. Les choix de paramètres de partage externe sont les suivantes :

    • Désactivé, qui désactive le partage externe sur le site.

    • ExternalUserAndGuestSharing, qui autorise le partage entre l’utilisateur externe et un invité sur le site.

    • ExternalUserSharingOnly, qui permet le partage avec des utilisateurs externes uniquement.

  • Appelle SetSiteSharing.

Remarque

Le code dans cet article est fourni tel quel, sans garantie d’aucune sorte, expresse ou implicite, y compris mais sans s’y limiter, aucune garantie implicite d’adéquation à un usage particulier, à une qualité marchande ou une absence de contrefaçon.

 static void Main(string[] args)
        {
           
            /* Prompt for your Office 365 admin center URL*/
            Console.WriteLine("Enter your Tenant Admin URL for your Office 365 subscription:");
            string tenantAdminURL = GetSite();

            /* End Program if no Office 365 admin center URL is supplied*/
            if (string.IsNullOrEmpty(tenantAdminURL))
            {
                Console.WriteLine("Hmm, i tried to work on it but you didn't supply your admin tenant url:");
                return;
            }
               
            // Prompt the user for an Office365 site collection 
            Console.WriteLine("Enter your Office 365 Site Collection URL:");
            string siteUrl = GetSite();

            /* Prompt for Credentials */
            Console.WriteLine("Enter Credentials for your Office 365 Site Collection {0}:", siteUrl);

            string userName = GetUserName();
            SecureString pwd = GetPassword();

            /* End program if no credentials are entered */
            if (string.IsNullOrEmpty(userName) || (pwd == null))
            {
                Console.WriteLine("Hmm, i tried to work on it but you didn't supply your credentials:");
                return;
            }

            try 
            {
                SharingCapabilities _sharingSettingToApply = GetInputSharing(siteUrl);
                using (ClientContext cc = new ClientContext(tenantAdminURL))
                { 
                    cc.AuthenticationMode = ClientAuthenticationMode.Default;
                    cc.Credentials = new SharePointOnlineCredentials(userName, pwd);
                    SetSiteSharing(cc, siteUrl, _sharingSettingToApply);
                }
            }
            catch(Exception ex)
            {
                Console.WriteLine("Oops, Mistakes can happen to anyone. An Error occured : {0}", ex.Message);
               
            }

            Console.WriteLine("Hit Enter to exit.");
            Console.Read();

        
        }

SetSiteSharing effectue les opérations suivantes :

  • Utilise Tenant.GetSitePropertiesByUrl pour récupérer SiteProperties sur votre collection de sites.

  • Utilise Tenant.SharingCapability pour déterminer si le partage externe est activé sur votre abonnement Office 365.

  • Si le partage est activé dans votre abonnement Office 365, définit le SiteProperties.SharingCapability aux paramètres de partage entré par l’utilisateur externe.

public static void SetSiteSharing(ClientContext adminCC, string siteCollectionURl, SharingCapabilities shareSettings)
        {
            var _tenantAdmin = new Tenant(adminCC);
            SiteProperties _siteprops = _tenantAdmin.GetSitePropertiesByUrl(siteCollectionURl, true);
            adminCC.Load(_tenantAdmin);
            adminCC.Load(_siteprops);
            adminCC.ExecuteQuery();

            SharingCapabilities _tenantSharing = _tenantAdmin.SharingCapability;
            var _currentShareSettings = _siteprops.SharingCapability;
            bool _isUpdatable = false;

            if(_tenantSharing == SharingCapabilities.Disabled)
            {
                Console.WriteLine("Sharing is currently disabled in your tenant! I am unable to work on it.");
            }
            else
            {  
                if(shareSettings == SharingCapabilities.Disabled)
                { _isUpdatable = true; }
                else if(shareSettings == SharingCapabilities.ExternalUserSharingOnly)
                {
                    _isUpdatable = true;   
                }
                else if (shareSettings == SharingCapabilities.ExternalUserAndGuestSharing)
                {
                    if (_tenantSharing == SharingCapabilities.ExternalUserAndGuestSharing)
                    {
                        _isUpdatable = true;
                    }
                    else
                    {
                        Console.WriteLine("ExternalUserAndGuestSharing is currently disabled in your tenant! I am unable to work on it.");
                    }
                }
            }
            if (_currentShareSettings != shareSettings && _isUpdatable)
            {
                _siteprops.SharingCapability = shareSettings;
                _siteprops.Update();
                adminCC.ExecuteQuery();
                Console.WriteLine("Set Sharing on site {0} to {1}.", siteCollectionURl, shareSettings);
            }
        }

Voir aussi