We have moved!

You are currently looking at documentation for Umbraco 8 and older versions.
An automated guess is that docs.umbraco.com/umbraco-cms/reference/management/services/publicaccessservice/ could be the link to the new documentation for Umbraco 9 and newer versions.

    PublicAccessService

    Service to handle public access.

    Browse the API documentation for IPublicAccessService interface.

    • Namespace: Umbraco.Core.Services
    • Assembly: Umbraco.Core.dll

    All samples in this document will require references to the following dll:

    • Umbraco.Core.dll

    All samples in this document will require the following using statements:

    using Umbraco.Core;
    using Umbraco.Core.Models;
    using Umbraco.Core.Services;
    

    Getting the service

    Services property

    If you wish to use the public access service in a class that inherits from one of the Umbraco base classes (eg. SurfaceController, UmbracoApiController or UmbracoAuthorizedApiController), you can access the public access service through a local Services property:

    IPublicAccessService publicAccessService = Services.PublicAccessService;
    

    Dependency Injection

    In other cases, you may be able to use Dependency Injection. For instance if you have registered your own class in Umbraco's dependency injection, you can specify the IPublicAccessService interface in your constructor:

    public class MyClass
    {
    
        private IPublicAccessService _publicAccessService;
    
    	public MyClass(IPublicAccessService publicAccessService)
    	{
    		_publicAccessService = publicAccessService;
    	}
    
    }
    

    Static accessor

    If neither a Services property or Dependency Injection is available, you can also reference the static Current class directly:

    IPublicAccessService publicAccessService = Umbraco.Core.Composing.Current.Services.PublicAccessService;