# UserService

The UserService acts as a "gateway" to Umbraco data for operations which are related to Users.

* **Namespace:** `Umbraco.Core.Services`
* **Assembly:** `Umbraco.Core.dll`

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

* Umbraco.Core.dll

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

```csharp
using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.Services;
```

## Getting the service

### Services property

{% hint style="warning" %}

* `UmbracoAuthorizedApiController` has been removed from Umbraco 14. Use `ManagementApiControllerBase` class instead.
* `UmbracoApiController` is obsolete in Umbraco 14 and will be removed in Umbraco 15.
  {% endhint %}

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

```csharp
IUserService userService = Services.UserService;
```

### 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 `IUserService` interface in your constructor:

```csharp
public class MyClass
{

    private IUserService _userService;
    
    public MyClass(IUserService userService)
    {
        _userService = userService;
    }

}
```

### Static accessor

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

```csharp
IUserService userService = Umbraco.Core.Composing.Current.Services.UserService;
```

## Samples

* [**Create a new user**](/umbraco-cms/13.latest/reference/management/services/userservice/create-a-new-user.md)\
  Quick sample showing how to create a new backoffice user; including setting a password, assigning the user to a user group, and setting the name of the user.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.umbraco.com/umbraco-cms/13.latest/reference/management/services/userservice.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
