2015-08-11 29 views
6

Come posso verificare in sitecore che l'utente corrente è un amministratore?Come verificare se l'utente attualmente connesso è admin o no

qualcosa di simile:

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

Se è necessario verificare che siano un amministratore nella shell Sitecore, utilizzare la soluzione di Marek, se si desidera verificare se un utente ha un ruolo specifico, è possibile utilizzare il metodo IsInRole. –

+0

@IanGraham ha ragione. Anche la risposta di Christian è corretta. –

risposta

15

Sitecore.Security.Accounts.User classe ha costruito in proprietà IsAdministrator:

Sitecore.Context.User.IsAdministrator 
+0

Proprio come una nota: Questo controllerà se l'utente ha la casella di controllo 'È amministratore' abilitata per il proprio account. Non controlla se sono in alcun tipo di ruolo di amministratore. Se stai specificamente controllando se un utente fa parte di un particolare gruppo, dovresti usare IsInRole. –

2

Questo dovrebbe fare quello che si voleva:

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

Si può effettivamente chiamare Sitecore.Context.IsAdministrator

0

Un'osservazione \ è una fuga in C# uso "extranet\\Admin" e l'amministratore CMS è sitecore \ admin

Suppongo che tu abbia bisogno di conoscere il tuo amministratore extranet. è una buona idea per fare basata sui ruoli, non ci può essere più di amministrazione di (non so se la proprietà IsAdministrator è buono lavoro per un extranet)

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

Se non si dispone di un rol amministratore Extranet e non si desidera , allora si può utilizzare quello che già avete if (Sitecore.Context.User.Name == "extranet\\Admin")

0

si può provare questo codice:

var result = Sitecore.Context.User.IsAdministrator; 

Se amministratore è connesso risultato è vero, altrimenti risultato è false.

Problemi correlati