SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




SPNavigationNodes über Berechtigungen ausblenden?

Geprüfte Antwort Dieser Beitrag hat 10 Antworten

Ohne Rang
282 Beiträge
MStel erstellt 18 Mai 2016 08:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich habe die Nutzer innerhalb meiner Serverfarm auf verschiedene Listen unterschiedlich berechtigt.

Die Listen werden aktuell alle auf der Startseite im Navigationsbaum angezeigt.


Meine Frage ist nun:
Kann ich via Permission string oder vergleichbarem Navigationselemente ausblenden, wenn keine ausreichenden Berechtigungen vorhanden sind?

Der Gedanke dahinter ist auf Kosten der Nutzerfreundlichkeit die Fehlermeldung "Zugriff verweigert" zu verhindern, indem man die Liste ausblendet bevor diese angeklickt werden kann.

Alle Nutzer mit dem Recht "Mitwirken" bzw. der Berechtigungsstufe "ManageWeb" dürften die Liste beispielsweise sehen, da dies die Voraussetzung für das anzeigen der Liste ist, jedoch wird für Nutzer mit "Lesen" bzw. ohne "ManageWeb" der ganze Eintrag in der Navigation ausgeblendet.

Habe so etwas ähnliches einmal für die SiteActions verwendet um Menüeinträge auszublenden, jedoch war dies in der Default.master und nun benötige ich das für bereits erstellte Inhalte. Im Designer habe ich bei Listen auch keine Eigenschaft gefunden die den Namen "Permission String" oder einen ähnlichen besitzt.

Wäre schön wenn mir dabei jemand weiterhelfen kann, würde mir persönlich sehr weiterhelfen.


Mfg

Mstel

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 18 Mai 2016 09:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Bei allen automatisch erstellten Links prüft SharePoint automatisch die Berechtigungen. Wenn man beim Anlegen einer Liste also den "Show in Quick Launch" Haken setzt, dann sehen den Link nur Personen, die mindestens Leserecht auf die Liste haben.

Bei allen manuell im Browser angelegten Links funktioniert dieser Mechanismus leider nicht.

Wenn man die Links per Code anlegt, kann man das beeinflussen. SPNavigationNode hat einen Konstruktor, der zusätzlich einen booleschen Parameter erwartet und mit dem kann man festlegen, ob die Berechtigungen geprüft werden sollen. Das funktioniert aber auch nur innerhalb einer Websitesammlung.
https://msdn.microsoft.com/en-us/library/office/ms415159(v=office.14).aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
282 Beiträge
MStel Als Antwort am 18 Mai 2016 14:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Funktioniert bestens, danke!

Ohne Rang
282 Beiträge
MStel Als Antwort am 25 Mai 2016 09:55
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Was mir im Nachhinein diesbezüglich noch eingefallen ist, es gibt noch die SPNavigationNode.Properties["Audience"] Eigenschaft.
Damit kann man direkt auf gewisse Gruppen einschränken.

Gruß

mstel

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Mai 2016 10:00
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ja, das ist die sog. Zielgruppenadressierung. Ist aber grundsätzlich anders, als eine Filterung nach Berechtigungen, d.h. es kann da durchaus Unterschiede geben. Einem Benutzer könnte ein Link nicht angezeigt werden, obwohl er Rechte darauf hat, er aber nicht in der entsprechenden Gruppe ist. Und umgekehrt kann ein Benutzer einen Link sehen, obwohl ihm eigentlich die Rechte fehlen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
282 Beiträge
MStel Als Antwort am 1 Juni 2016 06:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

habe dazu sogar noch etwas gefunden.

In den Websitesammlungsfeatures kann man SharePoint Server- Veröffentlichungsinfrastruktur aktivieren um den Punkt "Navigation" in den Einstellungen sichtbar zu machen. Anschließend kann man die einzelnen Nodes auswählen und unter Bearbeiten Benutzergruppen zuweisen. Jede dort nicht zugewiesene Gruppe bzw. deren Nutzer sehen die Nodes anschließend nicht mehr.

Ob das vom System jetzt über Zielgruppenadressierung oder ["Audience"] Property gelöst ist kann ich zwar nicht sagen, für meine Zwecke funktioniert dies aber super. :-)

Mit freundlichen Grüßen
mstel

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 1 Juni 2016 09:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ob man jetzt nur dafür die Veröffentlichungsinfrastruktur aktivieren sollte, halte ich zumindest für sehr zweifelhaft...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
282 Beiträge
MStel Als Antwort am 2 Juni 2016 10:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

wollte jetzt nicht extra einen neuen Thread dafür anlegen, aber ist es möglich diese Eigenschaften für die Liste auch via PowerShell zu setzen wenn das Feature bereits aktiviert ist?

Oder muss ich dafür Zwangshaft neue Navigation Nodes mit Konstruktor Bool erzeugen?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Juni 2016 10:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Was denn jetzt? Du bringst da glaube ich zwei Sachen durcheinander. Es gibt einmal die Möglichkeit mit Veröffentlichungsinfrastruktur und Zielgruppen. Und dann noch die Möglichkeit einen SPNavigationNode als external zu kennzeichnen und das geht nur über den Konstruktor - nicht nachträglich. Man kann aber z.B. per PowerShell einen Node entfernen und dann als external neu einfügen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
282 Beiträge
MStel Als Antwort am 2 Juni 2016 12:39
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ja das war die Frage, ob ich die Veröffentlichungsinfrastruktur nachdem ich sie aktiviert habe via PowerShell einrichten kann ohne neue Nodes zu erzeugen. Dann könnte ich auf zweitere Variante ja verzichten.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Juni 2016 13:17
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Es geht garantiert, aber leider kann ich Dir nicht sagen wie :-(

Ich würde mir den Code der entsprechenden Application Page im ILSpy ansehen, um herauszufinden wie Microsoft das macht.

Viele Grüße
Andi
af @ evocom de
Blog