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

Notes

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

Avant de commencer

Pour commencer, téléchargez le complément exempleCore.ExternalSharing à partir du projetPratiques et modèles Office 365 Developer sur GitHub.

Utiliser l’application Core.ExternalSharing

Vérifiez que votre abonnement Office 365 autorise le partage externe. Pour ce faire , procédez comme suit :

  1. Ouvrez votre centre d’administration Office 365.

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

  3. Dans le menu de navigation gauche, sélectionnez Partager.

  4. Sous Partage à l’extérieur de votre organisation, veillez à ce que Autoriser les utilisateurs à inviter des utilisateurs externes authentifiés et à partager avec eux est bien activé.

Vérifiez les paramètres de votre site externe sur votre collection de sites SharePoint. Pour ce faire , procédez comme suit :

  1. Ouvrez votre centre d’administration Office 365.

  2. Dans le menu de navigation sur la gauche, sélectionnez SharePoint pour ouvrir le 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. Sur le ruban, cliquez sur Partager.

  5. Passez en revue vos paramètres de partage externe dans la boîte de dialogue 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 Principaux 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 incluent :

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

  • Appels SetSiteSharing.

Notes

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