summaryrefslogtreecommitdiff
path: root/PrincipalProviders
diff options
context:
space:
mode:
Diffstat (limited to 'PrincipalProviders')
-rw-r--r--PrincipalProviders/LocalPrincipalProvider.cs22
1 files changed, 22 insertions, 0 deletions
diff --git a/PrincipalProviders/LocalPrincipalProvider.cs b/PrincipalProviders/LocalPrincipalProvider.cs
index 5c27518..723ff81 100644
--- a/PrincipalProviders/LocalPrincipalProvider.cs
+++ b/PrincipalProviders/LocalPrincipalProvider.cs
@@ -66,6 +66,28 @@ public class LocalPrincipalProvider : PrincipalProvider {
return groups.ToArray();
}
+ public override SecurityIdentifier? TranslateName(string name) {
+ using var db = dbFactory.CreateDbContext();
+ try {
+ return db.Principals
+ .First(p => p.Name.ToLower() == name.ToLower().Trim())
+ .Sid;
+ } catch(InvalidOperationException) {
+ return null;
+ }
+ }
+
+ public override string? TranslateName(SecurityIdentifier sid) {
+ using var db = dbFactory.CreateDbContext();
+ try {
+ return db.Principals
+ .First(p => p.Sid == sid)
+ .Name;
+ } catch(InvalidOperationException) {
+ return null;
+ }
+ }
+
public override bool ValidatePassword(IUser user, string password) =>
((LocalUser) user).PasswordHash == HashPassword(password);