예제 #1
0
 public DoGetAction(IActivityIOPath path)
 {
     _logOnProvider   = new LogonProvider();
     _fileWrapper     = new FileWrapper();
     _path            = path;
     ImpersonatedUser = ValidateAuthorization.RequiresAuth(_path, _logOnProvider);
 }
예제 #2
0
 public DoGetAction(IActivityIOPath path, IDev2LogonProvider dev2LogonProvider, IFile fileWrapper, ImpersonationDelegate impersonationDelegate)
     : base(impersonationDelegate)
 {
     _logOnProvider    = dev2LogonProvider;
     _fileWrapper      = fileWrapper;
     _path             = path;
     _impersonatedUser = _impersonationDelegate(_path, _logOnProvider);
 }
예제 #3
0
 public DoDeleteOperation(IDeleteHelper deleteHelper, IActivityIOPath path, IDev2LogonProvider logOnProvider, ImpersonationDelegate impersonationDelegate)
     : base(impersonationDelegate)
 {
     _deleteHelper     = deleteHelper;
     _path             = path;
     _logOnProvider    = logOnProvider;
     _impersonatedUser = _impersonationDelegate?.Invoke(_path, _logOnProvider);
 }
예제 #4
0
 public DoPathExistOperation(IActivityIOPath path, IDev2LogonProvider dev2LogonProvider, IFile fileWrapper, IDirectory directory, ImpersonationDelegate impersonationDelegate)
     : base(impersonationDelegate)
 {
     _logOnProvider    = dev2LogonProvider;
     _fileWrapper      = fileWrapper;
     _dirWrapper       = directory;
     _path             = path;
     _impersonatedUser = _impersonationDelegate(_path, _logOnProvider);
 }
예제 #5
0
 public DoCreateDirectory(IActivityIOPath path, IDev2CRUDOperationTO args)
 {
     _logOnProvider   = new LogonProvider();
     _fileWrapper     = new FileWrapper();
     _dirWrapper      = new DirectoryWrapper();
     _path            = path;
     _crudArguments   = args;
     ImpersonatedUser = ValidateAuthorization.RequiresAuth(_path, _logOnProvider);
     _handleOverwrite = RequiresOverwrite(_crudArguments, _path, _logOnProvider);
 }
 public DoGetFilesAsPerTypeOperation(IActivityIOPath path, ReadTypes type)
 {
     _logOnProvider   = new LogonProvider();
     _fileWrapper     = new FileWrapper();
     _dirWrapper      = new DirectoryWrapper();
     _path            = path;
     _type            = type;
     ImpersonatedUser = ValidateAuthorization.RequiresAuth(_path, _logOnProvider);
     _newPath         = AppendBackSlashes(_path, _fileWrapper, _dirWrapper);
 }
예제 #7
0
 public DoCreateDirectory(IActivityIOPath path, IDev2CRUDOperationTO args, IDev2LogonProvider dev2LogonProvider, IFile fileWrapper, IDirectory directory, ImpersonationDelegate impersonationDelegate)
     : base(impersonationDelegate)
 {
     _logOnProvider    = dev2LogonProvider;
     _fileWrapper      = fileWrapper;
     _dirWrapper       = directory;
     _path             = path;
     _crudArguments    = args;
     _impersonatedUser = _impersonationDelegate(_path, _logOnProvider);
     _handleOverwrite  = RequiresOverwrite(_crudArguments, _path, _logOnProvider);
 }
 public DoGetFilesAsPerTypeOperation(IActivityIOPath path, ReadTypes type, IDev2LogonProvider dev2LogonProvider, IFile file, IDirectory directory, ImpersonationDelegate impersonationDelegate)
     : base(impersonationDelegate)
 {
     _logOnProvider    = dev2LogonProvider;
     _fileWrapper      = file;
     _dirWrapper       = directory;
     _path             = path;
     _type             = type;
     _impersonatedUser = _impersonationDelegate(_path, _logOnProvider);
     _newPath          = AppendBackSlashes(_path, _fileWrapper, _dirWrapper);
 }
예제 #9
0
 public DoPutAction(Stream currentStream, IActivityIOPath destination, IDev2CRUDOperationTO crudArgument, string whereToPut)
 {
     _logOnProvider   = new LogonProvider();
     _pathWrapper     = new FilePathWrapper();
     _fileWrapper     = new FileWrapper();
     _currentStream   = currentStream;
     Destination      = destination;
     _arguments       = crudArgument;
     ImpersonatedUser = ValidateAuthorization.RequiresAuth(Destination, _logOnProvider);
     _whereToPut      = whereToPut;
 }
예제 #10
0
 public DoPutAction(Stream currentStream, IActivityIOPath destination, IDev2CRUDOperationTO crudArgument, string whereToPut, IDev2LogonProvider logOnProvider, IFile fileWrapper, IFilePath pathWrapper, ImpersonationDelegate impersonationDelegate)
     : base(impersonationDelegate)
 {
     _logOnProvider    = logOnProvider;
     _pathWrapper      = pathWrapper;
     _fileWrapper      = fileWrapper;
     _currentStream    = currentStream;
     _destination      = destination;
     _arguments        = crudArgument;
     _impersonatedUser = _impersonationDelegate(_destination, _logOnProvider);
     _whereToPut       = whereToPut;
 }
예제 #11
0
        public static WindowsImpersonationContext RequiresAuth(IActivityIOPath path, IDev2LogonProvider dev2LogonProvider)
        {
            var safeToken = string.IsNullOrEmpty(path.Username) ? null : DoLogOn(dev2LogonProvider, path);

            if (safeToken != null)
            {
                using (safeToken)
                {
                    var newID = new WindowsIdentity(safeToken.DangerousGetHandle());
                    return(newID.Impersonate());
                }
            }
            return(null);
        }
 public static DoDeleteOperation RequiresOverwrite(IDev2CRUDOperationTO arg, IActivityIOPath path, IDev2LogonProvider dev2LogonProvider)
 => arg.Overwrite ? new DoDeleteOperation(path, dev2LogonProvider) : null;
예제 #13
0
 public static SafeTokenHandle DoLogOn(IDev2LogonProvider dev2Logon, IActivityIOPath path) => dev2Logon.DoLogon(path);
예제 #14
0
 public DoDeleteOperation(IDeleteHelper deleteHelper, IActivityIOPath path, IDev2LogonProvider logOnProvider)
     : this(deleteHelper, path, logOnProvider, null)
 {
 }
예제 #15
0
 public DoDeleteOperation(IActivityIOPath path, IDev2LogonProvider logOnProvider)
     : this(new DeleteHelper(new FileWrapper(), new DirectoryWrapper()), path, logOnProvider)
 {
 }
예제 #16
0
 public DoDeleteOperation(IActivityIOPath path, IDev2LogonProvider logOnProvider)
 {
     _logOnProvider = logOnProvider;
     _path          = path;
 }