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 ??
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 ??
Sitecore.Security.Accounts.User
klasa ma wbudowane własności IsAdministrator
:
Sitecore.Context.User.IsAdministrator
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. –
ten powinien zrobić to, czego chciał:
Sitecore.Context.User.IsInRole("extranet\admin")
rzeczywiście można po prostu zadzwonić Sitecore.Context.IsAdministrator
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")
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.
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. –
@IanGraham ma rację. Również odpowiedź Christiana jest poprawna. –