summaryrefslogtreecommitdiff
path: root/Services/PrincipalProvider.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Services/PrincipalProvider.cs')
-rw-r--r--Services/PrincipalProvider.cs12
1 files changed, 10 insertions, 2 deletions
diff --git a/Services/PrincipalProvider.cs b/Services/PrincipalProvider.cs
index 0c35007..d37e8c0 100644
--- a/Services/PrincipalProvider.cs
+++ b/Services/PrincipalProvider.cs
@@ -8,6 +8,9 @@ public interface IPrincipalProvider {
public IGroup[] GetGroups(IPrincipal principal);
public IGroup[] GetGroups(IPrincipal principal, bool recurse);
+ public IGroup[] GetGroups(SecurityIdentifier sid);
+ public IGroup[] GetGroups(SecurityIdentifier sid, bool recurse);
+
public bool ValidatePassword(IUser user, string password);
}
@@ -16,8 +19,13 @@ public abstract class PrincipalProvider : IPrincipalProvider {
public abstract IUser? GetUser(string name);
public abstract IGroup? GetGroup(string name);
- public IGroup[] GetGroups(IPrincipal principal) => GetGroups(principal, false);
- public abstract IGroup[] GetGroups(IPrincipal principal, bool recurse);
+ public IGroup[] GetGroups(IPrincipal principal) =>
+ GetGroups(principal.Sid, false);
+ public IGroup[] GetGroups(IPrincipal principal, bool recurse) =>
+ GetGroups(principal.Sid, recurse);
+
+ public IGroup[] GetGroups(SecurityIdentifier sid) => GetGroups(sid, false);
+ public abstract IGroup[] GetGroups(SecurityIdentifier sid, bool recurse);
public abstract bool ValidatePassword(IUser user, string password);
}