diff --git a/src/ActiveDirectoryToRestApi/ActiveDirectoryToRestApi.csproj b/src/ActiveDirectoryToRestApi/ActiveDirectoryToRestApi.csproj
index 125b5d8..74603cd 100644
--- a/src/ActiveDirectoryToRestApi/ActiveDirectoryToRestApi.csproj
+++ b/src/ActiveDirectoryToRestApi/ActiveDirectoryToRestApi.csproj
@@ -9,7 +9,7 @@
d52504e9-ea6e-4152-a52e-467ca002e47c
$(PackageVersion)
$(PackageVersion)
- 1.0.0.4
+ 1.0.0.5
diff --git a/src/ActiveDirectoryToRestApi/Controllers/UserController.cs b/src/ActiveDirectoryToRestApi/Controllers/UserController.cs
index b9bcf29..cb33ee7 100644
--- a/src/ActiveDirectoryToRestApi/Controllers/UserController.cs
+++ b/src/ActiveDirectoryToRestApi/Controllers/UserController.cs
@@ -17,7 +17,7 @@ public class UserController : ControllerBase
}
[HttpPost("/email")]
- public ActionResult Email(string email = "test.user@zimbres.com")
+ public ActionResult Email(string email = "test.user@zimbres.loc")
{
var user = _ldapService.GetUserByEmail(email);
if (user == null)
diff --git a/src/ActiveDirectoryToRestApi/Models/User.cs b/src/ActiveDirectoryToRestApi/Models/User.cs
index 645f8a3..e787430 100644
--- a/src/ActiveDirectoryToRestApi/Models/User.cs
+++ b/src/ActiveDirectoryToRestApi/Models/User.cs
@@ -15,6 +15,8 @@ public class User
public string PasswordExpiration { get; set; }
public bool Expired { get; set; }
public string Expiration { get; set; }
+ public bool IsLocked { get; set; }
+ public string LockoutTime { get; set; }
public string DistinguishedName { get; set; }
public List Groups { get; set; }
}
diff --git a/src/ActiveDirectoryToRestApi/Services/LdapService.cs b/src/ActiveDirectoryToRestApi/Services/LdapService.cs
index 71398ca..52aeb63 100644
--- a/src/ActiveDirectoryToRestApi/Services/LdapService.cs
+++ b/src/ActiveDirectoryToRestApi/Services/LdapService.cs
@@ -30,7 +30,7 @@ public class LdapService
private User GetUser(string filter)
{
string[] attributesToReturn = { "givenName", "sn", "mail", "userPrincipalName", "displayName", "sAMAccountName",
- "userAccountControl", "accountExpires", "memberOf", "distinguishedName", "pwdLastSet" };
+ "userAccountControl", "accountExpires", "memberOf", "distinguishedName", "pwdLastSet", "lockoutTime" };
SearchRequest searchRequest = new(_ldapConfigs.DistinguishedName, filter, SearchScope.Subtree, attributesToReturn);
@@ -40,6 +40,15 @@ public class LdapService
{
SearchResultEntry entry = searchResponse.Entries[0];
+ bool isLocked = false;
+ string lockoutTime = string.Empty;
+ if (entry.Attributes.Contains("lockoutTime"))
+ {
+ var lockoutTimeTicks = entry.Attributes["lockoutTime"][0].ToString();
+ isLocked = lockoutTimeTicks != "0";
+ lockoutTime = lockoutTimeTicks.ConvertToDateTime();
+ }
+
string userAccountControl = entry.Attributes["userAccountControl"][0].ToString();
string accountExpires = entry.Attributes["accountExpires"][0].ToString();
string expiration = accountExpires.ConvertToDateTime();
@@ -82,6 +91,8 @@ public class LdapService
PasswordExpiration = passwordExpiration,
Expiration = expiration,
Expired = expired,
+ IsLocked = isLocked,
+ LockoutTime = lockoutTime,
DistinguishedName = distinguishedName,
Groups = groups
};
diff --git a/src/ActiveDirectoryToRestApi/appsettings.json b/src/ActiveDirectoryToRestApi/appsettings.json
index 07e17cc..23d279d 100644
--- a/src/ActiveDirectoryToRestApi/appsettings.json
+++ b/src/ActiveDirectoryToRestApi/appsettings.json
@@ -30,10 +30,10 @@
"Server": "192.168.100.25",
"Port": 636,
"UseSSL": true,
- "DomainName": "AD", // (pre-Windows 2000)
+ "DomainName": "ZIMBRES", // (pre-Windows 2000)
"User": "ldapAdmin",
"Pass": "Thi$1sMyPassw0rd",
- "DistinguishedName": "DC=ad,DC=zimbres,DC=com"
+ "DistinguishedName": "DC=zimbres,DC=loc"
},
"Configuration": {
"Authorization": "Bearer v63M9FlOhqAohJ7oGmFrhVIj",