Best practice to save private images on a webserver ASP Net Core/Angular

In my Angular app users can register/logged in and upload private images. This images are shown immediately in the formular after the upload.
At the moment the images a stored in folder

string imageDictionary = $"{_HostingEnvironment.WebRootPath}{User.Identity.Name}UploadFiles";

The folder and image name is stored in the database.

What is the best way to make sure that the images can only be access by the user how are logged in?
At the moment is it possible to call the image if the link are known.

Is it enough if I disable directory browsing and give the image a random created name?

I use for backend ASP Net Core and for frontend Angular version 7.

Source: New feed
Source Url Best practice to save private images on a webserver ASP Net Core/Angular