Frage

Ich habe benutzerdefinierte WebPart entwickelt. Ich kann es zur Seite hinzufügen und Site -Eigentümer können die Seite ohne Probleme anzeigen.

Die Besucher/Benutzer von Site werden jedoch um den Zugriff auf verweigerte Fehlerseite umgeleitet. Sicher, ich muss ein paar Dinge tun, die normale Benutzer nicht dürfen.

Aber was mich nervt, ist, dass wenn ich den Haltepunkt in Webpart -Konstruktor oder sogar eine variable Deklaration platziere, wird es nicht getroffen! (Wenn ich versuche, die Seite mit begrenzten Privilegien anzusehen). Aber in meinem Browser erhalte ich die Seite "Zugriff verweigert". Wenn ich dieses Webpart jedoch schließe, habe ich sofort Zugriff auf diese Seite und alles ist in Ordnung.

Was ist der Haken hier? Ich hatte gehofft, dass ich mit Debugger eine Ausnahme machen konnte, um festzustellen, welche Aussage schuldig ist, aber es scheint, dass WebPart keinen Code ausführt und ich diese Ausnahme bekomme.

EDIT: Entschuldigung, Debugger stellt jetzt diese Haltepunkte aus. Ich weiß nicht, was sich geändert hat, weil die Symbole geladen wurden.

War es hilfreich?

Lösung 2

Fand die Lösung.

Es stellte sich heraus, dass ich abgeschlossen habe, um festzustellen, ob der Benutzer zu einer bestimmten Gruppe gehört, indem ich versucht, auf diese Gruppenbenutzer zuzugreifen. Da dies unmöglich war, wenn ein Benutzer keine solchen Berechtigungen hat, warf er eine interne Ausnahme mit Nachricht aus

"Der Ausdruck kann nicht bewertet werden, da der Code optimiert ist oder ein nationaler Frame über dem Anrufstapel steht."

Wie auch immer, ich habe jetzt gelernt, durchzugehen SPUser.Groups (SPGroupCollection) Und prüfen Sie, ob wir eine passende Gruppe haben, anstatt Gruppenprinzipien zu zählen und zu sehen, ob er drinnen ist.

Andere Tipps

Was ist das Vertrauensniveau auf Ihrer SharePoint -Website? Vielleicht möchten Sie FullTrust vorübergehend angeben, um zu sehen, ob Sie Zugriffsprobleme haben.

Wenn ja, dann haben Sie möglicherweise ein Problem mit dem Codezugang (CAS) in den Händen. Mein erster Instinkt ist, dass Ihre Versammlung keine merkwürdigen Berechtigungen verfügt, die für normale Benutzer korrekt ausgeführt werden können. Sie können es mit benutzerdefinierten CAS -Eintrag in Manifest.xml für das WebPart konfigurieren, z. B. wenn Sie externe Ressourcen aufrufen, müssen Sie möglicherweise System.new.WebPermission konfigurieren und definieren, auf welche URL Sie zugreifen dürfen. Weitere Informationen dazu finden Sie hier U2U -Site.

Was macht Ihr Webpart auch? Wenn Sie versuchen, auf Ressourcen zuzugreifen, auf die normale Benutzer keinen Zugriff haben (z. B. eine Liste auf einer Website), müssen Sie die verwenden SpSecurity.runwitheLevatedPrivilages Methode, damit Sie über die merkwürdigen Berechtigungen verfügen (achten Sie darauf, dass eine neue Site -Instanz innerhalb dieser Methode erstellt wird, damit der Kontext korrekt gefüllt ist).

Sie müssen der Besuchergruppe die Erlaubnis (persönliches Webpart aktualisieren) geben. Es wird jedoch nicht empfohlen. Wenn Sie möchten, können Sie eine separate Berechtigungsstufe erstellen und der Besuchergruppe in Verbindung bringen.

Prost!!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top