You can create Security
objects that each User
in your application can have for each file or folder and you would need to store that in the database. Then your video files could go on a network drive that has a specific user set up on it. Set the permissions on the network drive to only allow that user to access the files.
The last part of the solution is to use the WindowsIdentity.Impersonate
Method to impersonate that user in your application and thereby gain access to the video files. There's a full code example and description of how to use this on the linked page, but to give you an example, I put the impersonation code into a nice class, so I can move files to a protected folder like this:
using (ImpersonationManager impersonationManager = new ImpersonationManager())
{
impersonationManager.Impersonate(Settings.Default.Domain,
Settings.Default.UserName, Settings.Default.Password);
Directory.CreateDirectory(Path.GetDirectoryName(filePath));
if (File.Exists(filePath)) File.Delete(filePath);
File.Move(inputFilePath, filePath);
}