private static async Task UpdateUnblockRequest(UnblockUserRequestResult result) { HttpContent putContent = new StringContent(JsonConvert.SerializeObject(result), Encoding.UTF8, "application/json"); var response = await _client.PutAsync("api/unblockuserrequests", putContent); response.EnsureSuccessStatusCode(); }
private static async Task ProcessUnblockUserRequestAsync(UnblockUserRequest unblockUserRequest) { UnblockUserRequestResult result; using (var context = CreatePrincipalContext()) { using (UserPrincipal userPrincipal = UserPrincipal.FindByIdentity(context, unblockUserRequest.AdUserName)) { if (userPrincipal == null) { result = new UnblockUserRequestResult { Id = unblockUserRequest.Id, RequestResult = false, RequestResultMessage = "AD User not found." } } ; else { userPrincipal.AccountExpirationDate = unblockUserRequest.AccountExpirationDate; userPrincipal.Save(); result = new UnblockUserRequestResult { Id = unblockUserRequest.Id, RequestResult = true, RequestResultMessage = "" }; } } } HttpContent putContent = new StringContent(JsonConvert.SerializeObject(result), Encoding.UTF8, "application/json"); var response = await _client.PutAsync("api/unblockuserrequests", putContent); response.EnsureSuccessStatusCode(); }
private static async Task ProcessUnblockUserRequestAsync(UnblockUserRequest unblockUserRequest) { UnblockUserRequestResult result; try { using (var context = CreatePrincipalContext()) { using (UserPrincipal userPrincipal = UserPrincipal.FindByIdentity(context, unblockUserRequest.AdUserName)) { if (userPrincipal == null) { result = new UnblockUserRequestResult { Id = unblockUserRequest.Id, RequestResult = false, RequestResultMessage = "AD User not found." } } ; else { string updateField = ConfigurationManager.AppSettings["AD:UpdateField"]; if (string.IsNullOrWhiteSpace(updateField)) { if (userPrincipal.AccountExpirationDate.HasValue && userPrincipal.AccountExpirationDate.Value < DateTime.UtcNow) { if (!unblockUserRequest.AccountExpirationDate.HasValue || (unblockUserRequest.AccountExpirationDate.Value > DateTime.UtcNow)) { userPrincipal.AccountExpirationDate = unblockUserRequest.AccountExpirationDate; } else { userPrincipal.AccountExpirationDate = null; } } } else { var entry = userPrincipal.GetUnderlyingObject() as DirectoryEntry; if (entry != null) { var value = GetValueForFieldUpdate(entry.Properties[updateField], ConfigurationManager.AppSettings["AD:UpdateFieldEnableValue"]); entry.Properties[updateField].Clear(); entry.Properties[updateField].Add(value); } else { _logger.Warn($"Unblocked User {unblockUserRequest.AdUserName} failed. The defined update field is invalid or the user entry could not be loaded."); result = new UnblockUserRequestResult { Id = unblockUserRequest.Id, RequestResult = false, RequestResultMessage = "Operation failed. The defined update field is invalid or the user entry could not be loaded." }; await UpdateUnblockRequest(result); return; } } userPrincipal.Save(); result = new UnblockUserRequestResult { Id = unblockUserRequest.Id, RequestResult = true, RequestResultMessage = "" }; _logger.Info($"Unblocked User {unblockUserRequest.AdUserName}"); } } } } catch (Exception ex) { ProcessException(ex); result = new UnblockUserRequestResult { Id = unblockUserRequest.Id, RequestResult = false, RequestResultMessage = ex.Message }; } await UpdateUnblockRequest(result); }