Click here to Skip to main content
15,891,694 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I've been doing some work that involved a FileSystemAccessRule and get horribly confused by the InheritanceFlags and PropagationFlags. When I read the help descriptions one way, the PropagationFlags seem redundant. When I read them another way, they seem contradictory to the InheritanceFlags. What do the three values of PropagationFlags mean in a practical sense?

What I have tried:

I've read the MSDN help several times and looked at examples posted for questions regarding the FileSystemAccessRule. Most use PropagationFlags.None, but none say why.
Posted
Updated 29-Jan-19 8:11am

1 solution

Inheritance (in this case) implies a dynamic binding to properties higher up in the hierarchy; whereas propagated implies values that have been added or updated in each instance.

Changing an inherited value implies all inheritors automatically "see" that change when it's made; propagation implies an "update" of all candidates.

A further implication is that inherited values are the same for all (i.e. read-only at the instance level); individual propagated values can be changed on each instance that has that property.

No memory need be reserved for inherited; whereas each instance needs a slot for a propagated value.
 
Share this answer
 
v2
Comments
John Whitmire 29-Jan-19 16:25pm    
That helps, but I still don't get it. If I had a scenario where I might use PropagateFlags.InheritOnly, what would it look like? What is the difference between PropagateFlags.None and PropagateFlags.NoPropagateInherit? It seems that at least one of the two values in an AccessRule (Inheritance or Propagation) will always be None. Is that what I'm missing?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900