Class PrincipalInfo
A class that encapsulates some of the details dealing with the IPrincipal interface and corresponding issues with permissions and role/membership management.
Inheritance
Inherited Members
Namespace: EPiServer.Security
Assembly: EPiServer.Cms.AspNet.dll
Version: 11.20.7Syntax
public class PrincipalInfo
Constructors
PrincipalInfo(IPrincipal)
Initializes a new instance of the PrincipalInfo class.
Declaration
public PrincipalInfo(IPrincipal principal)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Security.Principal.IPrincipal | principal | The principal object that you want to work with. |
Properties
AnonymousPrincipal
Gets a principal object representing the an anonoymous principal.
Declaration
public static IPrincipal AnonymousPrincipal { get; }
Property Value
| Type | Description |
|---|---|
| System.Security.Principal.IPrincipal | The anonymous principal. |
Current
Gets a PrincipalInfo object initialized with the current principal.
Declaration
public static PrincipalInfo Current { get; }
Property Value
| Type | Description |
|---|---|
| PrincipalInfo | The PrincipalInfo object. |
CurrentPrincipal
Gets or sets the current principal.
Declaration
public static IPrincipal CurrentPrincipal { get; set; }
Property Value
| Type | Description |
|---|---|
| System.Security.Principal.IPrincipal | The current principal. |
Remarks
This method will use the user from the http context an HttpContext exists, otherwise it will fall back to the the Thread.CurrentPrincipal setting.
When you get the current principal you are assured to always get a valid IPrincipal.
HasAdminAccess
Checks for user access to the /admin pages.
Declaration
public static bool HasAdminAccess { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
HasEditAccess
Checks for user access to the /edit pages.
Declaration
public static bool HasEditAccess { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
HasEditorAccess
Checks for user access to the /editor pages.
Declaration
public static bool HasEditorAccess { get; }
Property Value
| Type | Description |
|---|---|
| System.Boolean |
Name
Gets the name of the principal.
Declaration
public string Name { get; }
Property Value
| Type | Description |
|---|---|
| System.String | The name. |
Remarks
This is a convenience method to directly access the Name property of the contained Indentity.
Principal
Gets the principal used by this instance.
Declaration
public IPrincipal Principal { get; }
Property Value
| Type | Description |
|---|---|
| System.Security.Principal.IPrincipal | The principal. |
RoleList
Gets the list of roles that the principal belongs to.
Declaration
public ICollection<string> RoleList { get; }
Property Value
| Type | Description |
|---|---|
| System.Collections.Generic.ICollection<System.String> | The role list. |
Remarks
Uses System.Security.Claims.ClaimsPrincipal to get a list of all role claims
Methods
CreatePrincipal(String)
Creates a principal object for a user.
Declaration
[Obsolete("Use IUserImpersonation")]
public static IPrincipal CreatePrincipal(string username)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | username | The name of the user. |
Returns
| Type | Description |
|---|---|
| System.Security.Principal.IPrincipal | An IPrincipal with the associated roles initialized. |
Remarks
The Roles system must be enabled in order for this method to work. Note that there is no check that the passed username exists in the current Membership provider, a non-existing username will return a principal object with the given name and an empty role list. If role system is disabled then a principal without roles is returned.
HasPathAccess(String)
Determines whether the contained principal has access to the specified path.
Declaration
public virtual bool HasPathAccess(string path)
Parameters
| Type | Name | Description |
|---|---|---|
| System.String | path | The path to check. |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
IsPermitted(PermissionType)
Determines whether the specified permission is granted to the current principal.
Declaration
public bool IsPermitted(PermissionType permissionType)
Parameters
| Type | Name | Description |
|---|---|---|
| PermissionType | permissionType | The permission type. |
Returns
| Type | Description |
|---|---|
| System.Boolean |
|
RecreatePrincipalForThreading()
Recreates the principal for threading.
Declaration
public static void RecreatePrincipalForThreading()
WindowsIdentityRoles(WindowsIdentity)
Gets the identity roles for a WindowsIdentity.
Declaration
public ICollection<string> WindowsIdentityRoles(WindowsIdentity wi)
Parameters
| Type | Name | Description |
|---|---|---|
| System.Security.Principal.WindowsIdentity | wi | The WindowsIdentity object. |
Returns
| Type | Description |
|---|---|
| System.Collections.Generic.ICollection<System.String> | A collection of role names. |
Remarks
In most cases you should use the RoleList method.