Add lockoutTime

This commit is contained in:
Marcio
2024-08-08 16:53:20 -03:00
parent dbd94ef7b5
commit 7379fb09dc
5 changed files with 18 additions and 5 deletions
@@ -9,7 +9,7 @@
<UserSecretsId>d52504e9-ea6e-4152-a52e-467ca002e47c</UserSecretsId>
<AssemblyVersion>$(PackageVersion)</AssemblyVersion>
<FileVersion>$(PackageVersion)</FileVersion>
<Version>1.0.0.4</Version>
<Version>1.0.0.5</Version>
</PropertyGroup>
<ItemGroup>
@@ -17,7 +17,7 @@ public class UserController : ControllerBase
}
[HttpPost("/email")]
public ActionResult<User> Email(string email = "test.user@zimbres.com")
public ActionResult<User> Email(string email = "test.user@zimbres.loc")
{
var user = _ldapService.GetUserByEmail(email);
if (user == null)
@@ -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<string> Groups { get; set; }
}
@@ -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
};
@@ -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",