Skip to content

Commit 198d652

Browse files
author
Steve Salas
committed
Adds HasReadAndExecuteAccess to EffectiveAccess
1 parent 7853e05 commit 198d652

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

dotnet-tracer/main/CodePulse.Console/EffectiveAccess/EffectiveAccess.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,17 @@ public bool HasReadAccess
4141
}
4242
}
4343

44+
public bool HasExecuteAccess
45+
{
46+
get
47+
{
48+
const int execute = (int)NativeMethods.FileAccess.Execute;
49+
return (_grantedAccessMask & execute) == execute;
50+
}
51+
}
52+
53+
public bool HasReadAndExecuteAccess => HasReadAccess && HasExecuteAccess;
54+
4455
public EffectiveAccess(string path, string username)
4556
{
4657
Path = path;

dotnet-tracer/main/CodePulse.Console/Program.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,13 +178,13 @@ private static bool DoesUserHaveReadAndExecuteAccess(string path, string usernam
178178

179179
try
180180
{
181-
// Note: EffectiveAccess code can return a false negative result - it is possible that HasReadAccess
181+
// Note: EffectiveAccess code can return a false negative result - it is possible that HasReadAndExecuteAccess
182182
// may incorrectly return false. Similar behavior was witnessed when using the Windows 10 Effective
183183
// Permission screen to check read access for an ApplicationPoolIdentity with read access via a
184184
// local Windows group.
185185

186186
var effectiveAccess = new EffectiveAccess.EffectiveAccess(path, username);
187-
if (effectiveAccess.HasReadAccess)
187+
if (effectiveAccess.HasReadAndExecuteAccess)
188188
{
189189
return true;
190190
}

0 commit comments

Comments
 (0)