Freigeben über


Festlegen der externen Freigabe für Websitesammlungen in Office 365

Sie können Einstellungen für die externe Freigabe für eine SharePoint-Websitesammlung in Office 365 steuern, sodass externe Benutzer (Benutzer, die kein Organisationskonto in Ihrem Office 365-Abonnement besitzen) auf Ihre Websitesammlung zugreifen können.

Gilt für: Add-Ins für SharePoint | SharePoint Online | Office 365

Das Core.ExternalSharing-Codebeispiel zeigt Ihnen, wie Sie Ihre einstellungen für die externe Freigabe in einer SharePoint-Websitesammlung steuern. Verwenden Sie diese Lösung für Folgendes:

  • Steuern der Einstellungen für die externe Freigabe während Ihres Prozesses der Websitebereitstellung.

  • Vorbereiten Ihrer Websitesammlung für die Freigabe für externe Benutzer.

Hinweis

Einstellungen für die externe Freigabe sind nur in Office 365 verfügbar.

Bevor Sie beginnen

Laden Sie zunächst das Core.ExternalSharing-Beispiel-Add-In aus dem Projekt Office 365 Developer patterns and practices auf GitHub herunter.

Verwenden der App "Core.ExternalSharing"

Überprüfen Sie, ob Ihr Office 365-Abonnement die externe Freigabe zulässt. Gehen Sie hierfür folgendermaßen vor:

  1. Öffnen Sie Ihr Office 365 Admin Center.

  2. Wählen Sie im linken Navigationsmenü SharePoint aus.

  3. Wählen Sie im linken Navigationsmenü Freigabe aus.

  4. Stellen Sie unter Freigabe außerhalb Ihrer organization sicher, dass Benutzer das Einladen und Freigeben für authentifizierte externe Benutzer zulassenauf Ein festgelegt ist.

Überprüfen Sie Ihre externen Websiteeinstellungen für Ihre SharePoint-Websitesammlung. Gehen Sie hierfür folgendermaßen vor:

  1. Öffnen Sie Ihr Office 365 Admin Center.

  2. Wählen Sie im linken Navigationsmenü SharePoint aus, um Ihr SharePoint Admin Center zu öffnen.

  3. Aktivieren Sie in der Websitesammlungsliste das Kontrollkästchen neben der URL der Websitesammlung, bei der Sie Ihre Einstellungen für die externe Freigabe überprüfen möchten.

  4. Wählen Sie im Menüband Freigabe aus.

  5. Überprüfen Sie die Einstellungen für die externe Freigabe im Freigabedialogfeld . Kehren Sie nach Ausführung des Codebeispiels zum Dialogfeld Freigabe zurück, um zu überprüfen, ob Ihre Einstellungen für die externe Freigabe geändert wurden.

Wenn Sie dieses Codebeispiel ausführen, führt Main in Program.cs die folgenden Aufgaben aus:

  • Ruft die URL für das SharePoint Admin Center ab.

  • Ruft die URL für die Websitesammlung ab, um Einstellungen für die externe Freigabe zu konfigurieren.

  • Ruft Ihre Office 365-Administratoranmeldeinformationen ab.

  • Ruft GetInputSharing auf, wodurch der Benutzer aufgefordert wird, eine externe Freigabeeinstellung ( SharingCapabilities) auszuwählen, die auf die Websitesammlung angewendet werden soll. Die Optionen zu den Einstellungen für die externe Freigabe umfassen Folgendes:

    • Deaktiviert, wodurch die externe Freigabe für die Website deaktiviert wird.

    • ExternalUserAndGuestSharing, wodurch die externe Freigabe für Benutzer und Gäste der Website aktiviert wird.

    • ExternalUserSharingOnly, wodurch die externe Freigabe nur für Benutzer aktiviert wird.

  • Ruft SetSiteSharing auf.

Hinweis

Der Code in diesem Artikel wird wie besehen und ohne jegliche Garantie zur Verfügung gestellt, gleich ob ausdrücklich oder konkludent, einschließlich jedweder stillschweigenden Gewährleistung der Eignung für einen bestimmten Zweck, Marktgängigkeit oder Nichtverletzung von Rechten.

 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 funktioniert folgendermaßen:

  • Verwendet Tenant.GetSitePropertiesByUrl zum Abrufen von SiteProperties für Ihre Websitesammlung.

  • Verwendet Tenant.SharingCapability, um zu bestimmen, ob die externe Freigabe für Ihr Office 365 Abonnement aktiviert ist.

  • Wenn die Freigabe in Ihrem Office 365-Abonnement aktiviert ist, wird SiteProperties.SharingCapability auf die Einstellungen für die externe Freigabe des eingegebenen Benutzers festgelegt.

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);
            }
        }

Siehe auch