2015-08-11 20 views
6

Jak mogę sprawdzić w sitegore, że bieżący użytkownik jest administratorem?Jak sprawdzić, czy aktualnie zalogowany użytkownik jest administratorem czy nie?

coś takiego:

if(User.Current.Name == "extranet\Admin") 
// then do some thing ?? 
+1

Jeśli chcesz sprawdzić, czy jesteś administratorem w powłoce Sitecore, użyj rozwiązania Marka, jeśli chcesz sprawdzić, czy użytkownik ma określoną rolę, możesz użyć metody IsInRole. –

+0

@IanGraham ma rację. Również odpowiedź Christiana jest poprawna. –

Odpowiedz

15

Sitecore.Security.Accounts.User klasa ma wbudowane własności IsAdministrator:

Sitecore.Context.User.IsAdministrator 
+0

Podobnie jak notatka: Spowoduje to sprawdzenie, czy użytkownik ma zaznaczone pole wyboru "Czy administrator" dla swojego konta. Nie sprawdza, czy pełnią jakąkolwiek rolę administratora. Jeśli specjalnie sprawdzasz, czy użytkownik należy do określonej grupy, powinieneś użyć IsInRole. –

2

ten powinien zrobić to, czego chciał:

Sitecore.Context.User.IsInRole("extranet\admin") 
3

rzeczywiście można po prostu zadzwonić Sitecore.Context.IsAdministrator

0

Uwaga \ to ucieczka w trybie C# "extranet\\Admin", a administratorem CMS jest sitecore \ admin

Zakładam, że musisz znać swojego administratora ekstranetu. to dobry pomysł, aby zrobić w oparciu o role, nie może być wielokrotnością admin (nie wiem, czy właściwość IsAdministrator dobrze pracować dla extranet)

Sitecore.Context.User.IsInRole("extranet\\your extranet admin rol"); 

Jeśli nie masz Extranet administratora rol i nie chcą go, a następnie można wykorzystać to, co już masz if (Sitecore.Context.User.Name == "extranet\\Admin")

0

można spróbować ten kod:

var result = Sitecore.Context.User.IsAdministrator; 

Jeśli administrator jest zalogowany w rezultacie jest prawdą, w przeciwnym razie wynik jest fałszywy.

Powiązane problemy