3 Stimmen

Woher weiß ich, dass Sie sich bei einer Sharepoint-Webseite angemeldet haben?

Wir verwenden Sharepoint als CMS für unsere Webseiten bei der Arbeit. Ich weiß, wie man Steuerelemente erstellen kann, die nur sichtbar sind, wenn Sie in SharePoint mit angemeldet haben:

<Sharepoint:SPSecurityTrimmedControl ID="SPSecurityTrimmedControl1" runat="server" PermissionsString="AddAndCustomizePages"><br />
<Sharepoint:CssLink ID="CssLink1" runat="server"/><br />
</Sharepoint:SPSecurityTrimmedControl>

Aber ich möchte wissen, wie man Steuerelemente sichtbar machen (oder was auch immer) programmgesteuert abhängig von Berechtigungen.

Ich kann die Methoden für die .NET Windows-Formularauthentifizierung nicht verwenden:

        if (!(HttpContext.Current.User == null) && HttpContext.Current.User.Identity.IsAuthenticated){}

weil wir dies für anonyme Benutzer verwenden, die eine andere Art der Anmeldung haben.

Könnten Sie etwas Code zur Verfügung stellen? Ich weiß, dass es etwas wie die Überprüfung der SPContext.Current.FormContext sein muss.

4voto

strongopinions Punkte 3877

Wie werden die Benutzer authentifiziert? Mit Formularauthentifizierung oder mit Windows/aktivem Verzeichnis?

Wenn Active Directory, dann denke ich, in diesem Fall müssen Sie möglicherweise einen Verweis auf die aktuelle SPWeb zu erhalten, und dann tun web.CurrentUser.ID. Dies könnte Null herauskommen, wenn Sie anonym sind. Wenn nicht, versuchen Sie web.SiteUsers.GetByID(web.CurrentUser.ID) und sehen, was Sie erhalten.

0 Stimmen

Sie werden über die Sharepoint-Verwaltung authentifiziert, die mit Active Directory verbunden ist. Die Sache ist die, dass es eine Sharepoint-API gibt, um diese Dinge zu tun, aber ich hatte noch keine Zeit, mir diesen Teil anzusehen.

0 Stimmen

Ich denke, in diesem Fall müssen Sie möglicherweise einen Verweis auf die aktuelle SPWeb zu erhalten, und dann tun web.CurrentUser.ID. Dies könnte null herauskommen, wenn Sie anonym sind. Wenn nicht, versuchen Sie web.SiteUsers.GetByID(web.CurrentUser.ID) und sehen, was Sie erhalten.

0 Stimmen

Könnten Sie Ihren Kommentar in Ihre Antwort einfügen, damit ich ihn bewerten kann? Ich habe schließlich überprüft, dass SPContext.Current.Web.CurrentUser nicht null ist.

1voto

Øyvind Skaar Punkte 1824

DoesUserHavePermissions

Sie können diese Methode für das aktuelle Web verwenden, um zu prüfen, ob der aktuelle Benutzer eine bestimmte Berechtigung hat.

Ich gehe davon aus, dass Ihre authentifizierten Benutzer eine Berechtigung haben, die der anonymen Menge verweigert wird.

0voto

Jason Punkte 15739

Obwohl ich es nicht getestet habe, vermute ich, dass die LoginName-Eigenschaft des SPUser-Objekts leer sein oder eine Ausnahme auslösen wird.

... natürlich ist es nie sicher, etwas zu vermuten, wenn man mit dem SharePoint OM zu tun hat :(

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X